Echarts制作K线图

qq_28032019 2019-03-11 12:12:25

//绘制图表
function splitDate(rawData) {
var categoryData = [];
var values = [];
for (var i in rawData.results) {
for (var x in rawData.results[i].array) {
//categoryDate 日期 把返回的日期放到categoryData[]数组中
categoryData.push(rawData.results[i].array[x].splice(0, 1)[0]);
//数据数组,即数组中除日期外的数据
var arr = rawData.results[i].array[x];
arr[2] = arr.splice(3,1,arr[2])[0]; //数组下标位置转换 最低价 最高价
values.push(rawData.results[i].array[x]);
}
}
// echarts图表绘制函数
option = {
title: {
// text: '上证指数',
left: 0
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross'
}
},
legend: {
data: ['日K', 'MA5', 'MA10', 'MA20', 'MA30']
},
grid: {
left: '10%',
right: '10%',
bottom: '15%'
},
xAxis: {
type: 'category',
data: categoryData,
scale: true,
boundaryGap : false,
axisLine: {onZero: false},
splitLine: {show: false},
splitNumber: 20,
min: 'dataMin',
max: 'dataMax'
},
yAxis: {
scale: true,
splitArea: {
show: true
}
},
dataZoom: [
{
type: 'inside',
start: 50,
end: 100
},
{
show: true,
type: 'slider',
y: '90%',
start: 50,
end: 100
}
],
series: [
{
name: '日K',
type: 'candlestick',
data: values,
itemStyle: {
normal: {
color: upColor,
color0: downColor,
borderColor: upBorderColor,
borderColor0: downBorderColor
}
},
},
{
name: 'MA5',
type: 'line',
data: calculateMA(5,values),
smooth: true,
lineStyle: {
normal: {opacity: 0.5}
}
},
{
name: 'MA10',
type: 'line',
data: calculateMA(10,values),
smooth: true,
lineStyle: {
normal: {opacity: 0.5}
}
},
{
name: 'MA20',
type: 'line',
data: calculateMA(20,values),
smooth: true,
lineStyle: {
normal: {opacity: 0.5}
}
},
{
name: 'MA30',
type: 'line',
data: calculateMA(30,values),
smooth: true,
lineStyle: {
normal: {opacity: 0.5}
}
},

]
};
if (option && typeof option === 'object') {
myChart.setOption(option, true);
}
}
function calculateMA(dayCount,values) {
var result = [];
for (var i = 0, len = values.length; i < len; i++) {
if (i < dayCount) {
result.push('-');
continue;
}
var sum = 0;
for (var j = 0; j < dayCount; j++) {
sum += values[i - j][1];
}
var aa = (sum / dayCount);
result.push(aa.toFixed(2));
// result.push(sum / dayCount);

}

return result;
}

rawData是ajax回调回来的数据
...全文
1671 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
HQChart 2019-09-10
  • 打赏
  • 举报
回复
https://opensource.zealink.com/vuehqweb/hq.demo.page.html 地址: https://github.com/jones2000/HQChart
BUG创建者 2019-05-08
  • 打赏
  • 举报
回复
我做了个折线图,用的websokect但是现在有个问题一跳转然后在回到原来的页面 折线图就重新开始了,怎么保存不住啊
大树小草 2019-05-07
  • 打赏
  • 举报
回复
看看这个http://www.estockchart.com/details/H1S0n4jFE.html
devil_R 2022-02-16
  • 举报
回复
@大树小草 打不开链家呢
yaotomo 2019-04-07
  • 打赏
  • 举报
回复
K线图用highstock更好些吧,专门做股票的

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧