动态更新echarts k线图数据 通过websocket取数据

1.加载插件,实例化chart.2.链接websocket3.接收数据,处理数据,调用chart的实例,不断更新数据<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8">    <title></title></head><body><div id="container"></div><p id="CommodityNo">50</p><script src="k/esl.js"></script><script>    //加载插件    var aa=require.config({        paths:{            ‘echarts‘ :‘k/echarts‘,            ‘echarts/chart/pie‘ :‘k/echarts‘,        }    });    function loadK(){        // 使用        require(                [                    ‘echarts‘,                    ‘echarts/chart/pie‘, // 使用柱状图就加载bar模块,按需加载                ],                function (ec) {                    // 基于准备好的dom,初始化echarts图表                    myChart = ec.init(document.getElementById(‘container‘));
                    echarts=ec;                }        );

};    var marketSocketUrl="";//websocket地址    var marketUserName="";//websocket名字    var marketPassword="";//websocket密码    marketSocket = new WebSocket(marketSocketUrl);    var setIntvalTime = null;    marketSocket.onopen = function(evt){        masendMessage(‘Login‘,‘{"UserName":"‘+marketUserName+‘","PassWord":"‘+marketPassword+‘"}‘);    };    marketSocket.onclose = function(evt){};    marketSocket.onmessage = function(evt){        var data = evt.data;         if(method == "OnRspQryHistoryData"){            var historyParam = jsonData;            if(historyParam.Parameters==null){                return            };            processingData(data);        }    };    marketSocket.onerror = function(evt){    };    var rawData = [];    var CandlestickChartOption=null;    var CandlestickVolumeChartOption=null;    var newData=[];    function processingData(jsonData){        var parameters = jsonData.Parameters.Data;        if(jsonData == null)return;        newData=parameters.data;//处理数据,更新数据        var x=0;        if(dataPricesList.length!=0){            for(var i=0;i<dataPricesList.length;i++){                if(dataPricesList[i].id==$("#CommodityNo").text()){                    x=dataPricesList[i].prices;//获取标线的价格                }            }        }        CandlestickChartOption = setOption(newData,x);        myChart.setOption(CandlestickChartOption);        myChart.resize();

}    //设置数据参数(为画图做准备)    function setOption(rawData,x){        var dates = rawData.map(function (item) {            return item[0];        });        var data = rawData.map(function (item) {            return [+item[1], +item[2], +item[5], +item[6]];        });        var option = {            backgroundColor: ‘rgba(43, 43, 43, 0)‘,            tooltip: {                trigger: ‘axis‘,                axisPointer : {                    type : ‘line‘,                    animation: false,                    lineStyle: {                        color: ‘#ffffff‘,                        width: 1,                        opacity: 1                    }                },                formatter: function (params) {                    var res = "时间:"+params[0].name;                    res += ‘<br/>  开盘 : ‘ + params[0].value[0] + ‘<br/>  最高 : ‘ + params[0].value[3];                    res += ‘<br/>  收盘 : ‘ + params[0].value[1] + ‘<br/>  最低 : ‘ + params[0].value[2];                    return res;                }            },            grid: {                x: 43,                y:20,                x2:46,                y2:5            },            xAxis: {                type: ‘category‘,                data: dates,                show:false,                axisLine: { lineStyle: { color: ‘#8392A5‘ } }            },            yAxis: {                scale: true,                axisLine: { lineStyle: { color: ‘#8392A5‘ } },                splitLine: { show: false },                axisTick:{                    show:false,                },                splitArea: {                    show: false                },                axisLabel: {                    inside: false,                    margin: 4                },                splitLine: {                    show: true,                    lineStyle: {                        color: "#8392A5"                    }                }            },            animation: false,            series: [                {                    type: ‘candlestick‘,                    name: ‘‘,                    data: data,                    markLine: {                        symbol: [‘none‘, ‘none‘],                        clickable:false,                        data: [                            {name: ‘标线2起点‘, value: x, xAxis: "1", yAxis: x}, //持仓均线                            {name: ‘标线2终点‘, xAxis: "2", yAxis: x}                        ]                    },                    itemStyle: {                        normal: {                            color: ‘#FD1050‘,                            color0: ‘#0CF49B‘,                            borderColor: ‘#FD1050‘,                            borderColor0: ‘#0CF49B‘                        }                    }                }            ]        }        return option;    };</script></body></html>
时间: 2024-07-29 00:51:39

动态更新echarts k线图数据 通过websocket取数据的相关文章

C#下如何用NPlot绘制期货股票K线图(2):读取数据文件让K线图自动更新

[内容介绍]上一篇介绍了K线图的基本绘制方法,但很不完善,本篇增加了它直接读取数据的功能,这对于金融市场的数据量大且又需要动态刷新功能的实现很重要. [实现方法] 1.需要一个数据文件,这里用的是直接读取由另一个CTP程序从上期交易所接收的期货合约RB1609所写的行情文件日线数据rb1609_d1.txt 文件格式如下: 日期 时间 开盘 最高 最低 收盘 成交量 持仓量 20160810 0.100000 2555.00 2606.00 2540.00 2563.00 3114 6858 2

vue项目中echarts实现K线图

背景介绍: vue项目,区块链,需要写比特币和其他币种涨幅的K线图 一.安装依赖 npm install echarts -S 二.引入 import echarts from 'echarts' Vue.prototype.$echarts = echarts 三.html 四.初始化echarts 以上配置项option直接从echarts官网复制即可 五.调用初始化echarts函数 致此,静态的K线图已经形成了,在这个项目中,我们需要每0.5s就向后台发请求, 请求K线数据,由于请求数据

echarts画k线图

var charset = echarts.init(document.getElementById("k_line")) $.get(k_line.url_A).done(function (info) { var rawData = info.Data.History; var single = info.Data.Signal; var single_ = []; var arr = []; for (var i = 0; i < single.length; i++) {

使用ECharts画K线图

需引入echarts.js插件,开发环境建议选择源代码版本,该版本包含了常见的警告和错误提示.下载地址 http://echarts.baidu.com/download.html 下面是代码,注释很清楚,主要是js代码,可根据项目进行增删!配置项说明: http://echarts.baidu.com/option.html#title <!DOCTYPE html> <html> <head> <meta charset="utf-8"&g

[python]沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上

将沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上 原理:python读取前一次处理完的计算5日后涨跌幅输出的csv文件 文件名前加"[paint]" 安照通达信的画图文件和板块文件格式,输出文件 用通达信的导入功能,导入画图文件和板块文件即可 事前数据截图: 处理后所得文件: 导入通达信后板块截图: k线截图: 代码: 1 #coding=utf-8 2 3 #读取'[paint]'开头的csv文件 4 #copyright @ WangXinsheng 5 #http://ww

C#下如何用NPlot绘制期货股票K线图(3):设计要显示的股票价格图表窗口并定义相应类的成员及函数

[内容简介] 上一篇介绍了要显示K线图所需要的数据结构,及要动态显示K线图,需要动态读取数据文件必需的几个功能函数.本篇介绍要显示蜡烛图所用到的窗口界面设计及对应类定义.下面分述如下: [窗口界面] 见下图 上图中对应各周期功能按钮和标签进行相应拖放操作就是了, 不再多述 .倒是图表区为一个Nplot控件,命名:myPlot. [窗口类定义] 界面部分自动生成的代码文件: ///<ctp1.Designer.cs> ///K线图窗口界面代码此代码由VS自动生成. //-------------

股票K线图-JfreeChart版

http://blog.csdn.net/ami121/article/details/3953272 股票K线图-JfreeChart版 标签: jfreechartpropertiesappletdatetabledataset 2009-03-03 16:00 9378人阅读 评论(8) 收藏 举报 分类: jfreechart(7) 股票的K线图是所有Chart图中最复杂的一种,把一个K线图拆分开来我们可以发现,K线图的上半截实际上是由阴阳线(阴阳线可以表示开盘价,收盘价,最高价,最低价

用Python做股票市场数据分析—做K线图

由于本科在校期间身边有许多朋友是金融专业的,他们时长在我耳边谈起股票情况,受他们影响,耳濡目染地对证券时长有了兴趣.毕业前几个月找实习单位时,又机缘巧合地在这方面工作了一段时间,学习了证券交易的各种理论(道氏理论.日本蜡烛图技术.波浪理论等),虽然后期转行做了本专业工作(数据挖掘),但对证券交易这块一直在关注.闲来无事就用Python来实现了一下蜡烛图,话不多说,直接上代码: # 导入需要的包和模块 import datetime import pandas as pd import tusha

利用JFreeChart绘制股票K线图完整解决方案

http://blog.sina.com.cn/s/blog_4ad042e50100q7d9.html 利用JFreeChart绘制股票K线图完整解决方案 (2011-04-30 13:27:17) 标签: 绘制 股票 k线 it 分类: 软件_Software 因为工作的需要,接触了一些股票图形绘制类的工作,其中最主要的还是股票K线图的绘制了,如果利用编程语言最底层的图形绘制方法去绘制这类图形,如果对编程语言不是特别熟悉的话,一般是有很大的困难的,通过在网上搜索发现,以自己最熟悉的两门语言为