描述
這是官方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);