| /* |
| title: Dynamic Data + Time Axis |
| category: line |
| titleCN: 动态数据 + 时间坐标轴 |
| difficulty: 5 |
| */ |
| |
| interface DataItem { |
| name: string; |
| value: [string, number]; |
| } |
| |
| function randomData(): DataItem { |
| now = new Date(+now + oneDay); |
| value = value + Math.random() * 21 - 10; |
| return { |
| name: now.toString(), |
| value: [ |
| [now.getFullYear(), now.getMonth() + 1, now.getDate()].join('/'), |
| Math.round(value) |
| ] |
| }; |
| } |
| |
| let data: DataItem[] = []; |
| let now = new Date(1997, 9, 3); |
| let oneDay = 24 * 3600 * 1000; |
| let value = Math.random() * 1000; |
| for (var i = 0; i < 1000; i++) { |
| data.push(randomData()); |
| } |
| |
| option = { |
| title: { |
| text: 'Dynamic Data & Time Axis' |
| }, |
| tooltip: { |
| trigger: 'axis', |
| formatter: function (params: any) { |
| params = params[0]; |
| var date = new Date(params.name); |
| return ( |
| date.getDate() + |
| '/' + |
| (date.getMonth() + 1) + |
| '/' + |
| date.getFullYear() + |
| ' : ' + |
| params.value[1] |
| ); |
| }, |
| axisPointer: { |
| animation: false |
| } |
| }, |
| xAxis: { |
| type: 'time', |
| splitLine: { |
| show: false |
| } |
| }, |
| yAxis: { |
| type: 'value', |
| boundaryGap: [0, '100%'], |
| splitLine: { |
| show: false |
| } |
| }, |
| series: [ |
| { |
| name: 'Fake Data', |
| type: 'line', |
| showSymbol: false, |
| data: data |
| } |
| ] |
| }; |
| |
| setInterval(function () { |
| for (var i = 0; i < 5; i++) { |
| data.shift(); |
| data.push(randomData()); |
| } |
| |
| myChart.setOption<echarts.EChartsOption>({ |
| series: [ |
| { |
| data: data |
| } |
| ] |
| }); |
| }, 1000); |
| |
| export {}; |