描述
这是官方DEMO 动态数据 + 时间坐标轴 上的一个修改 ,可以满足秒级刷新及刻度需求的使用。
简单来说就是X轴选择类目轴,X轴的data传入一个额外的数组(例如date),原始的data构造成对象(为了tooltip构造方便)。动态更新的时候,date数组中传入data对象的第一个值。具体看下面修改过的代码和运行效果图。
代码
function randomData() {
var now = new Date();
value = value + Math.random() * 21 - 10;
return {
value: [
[now.getHours(), now.getMinutes(), now.getSeconds()].join(':'),
Math.round(value)
]
}
}
var data = [];
var date = [];
var value = Math.random() * 1000;
for (var i = 0; i < 1000; i++) {
data.push(randomData());
date.push('')
}
option = {
title: {
text: '动态数据 + 时间坐标轴'
},
tooltip: {
trigger: 'axis',
formatter: function (params) {
params = params[0];
return params.value[0] + ' / ' + params.value[1];
},
axisPointer: {
animation: false
}
},
xAxis: {
type: 'category',
splitLine: {
show: false
},
data: date
},
yAxis: {
type: 'value',
boundaryGap: [0, '100%'],
splitLine: {
show: false
}
},
series: [{
name: '模拟数据',
type: 'line',
showSymbol: false,
hoverAnimation: false,
data: data
}]
};
setInterval(function () {
var _data = randomData();
data.shift();
date.shift();
data.push(_data);
date.push(_data.value[0])
myChart.setOption({
xAxis: {
data: date
},
series: [{
data: data
}]
});
}, 1000);
网友评论