function randomData() { now = new Date(+now + oneDay); value = value + Math.random() * 21 - 10; var valueName = now.getFullYear() + \'/\' + (now.getMonth() + 1) + \'/\' + now.getDate() + \' \' + (now.getHours() >= 10 ? now.getHours() : \'0\' + now.getHours()) + \':\' + (now.getMinutes() >= 10 ? now.getMinutes() : \'0\' + now.getMinutes()) + \':\' + (now.getSeconds() >= 10 ? now.getSeconds() : \'0\' + now.getSeconds()); return { name: now.toString(), value: [ valueName, Math.round(value) ] } } var data = []; var now = +new Date(); var oneDay = 1000; //var oneDay = 24 * 3600 * 1000; var value = Math.random() * 1000; for (var i = 0; i < 60; i++) { data.push(randomData()); } var temp = 59; option = { title: { text: \'动态数据 + 时间坐标轴\' }, tooltip: { trigger: \'axis\', formatter: function(params) { 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 }, triggerEvent: true }, yAxis: { type: \'value\', boundaryGap: [0, \'100%\'], splitLine: { show: false } }, series: [{ name: \'模拟数据\', type: \'line\', showSymbol: false, hoverAnimation: false, markPoint: { data: [ [{ symbol: \'none\', x: \'95%\', yAxis: data[temp].value[1] }, { symbol: \'circle\', label: { normal: { position: \'start\', formatter: \'实时数据\n{c}\' } }, name: \'实时数据\', value: data[temp].value[1], xAxis: data[temp].value[0], yAxis: data[temp].value[1] }] ] }, data: data }] }; setInterval(function() { for (var i = 0; i < 5; i++) { data.shift(); data.push(randomData()); } //alert(data[999].name) myChart.setOption({ series: [{ data: data, markLine: { data: [ [{ symbol: \'none\', x: \'95%\', yAxis: data[temp].value[1] }, { symbol: \'circle\', label: { normal: { position: \'start\', formatter: \'实时数据\n{c}\' } }, name: \'实时数据\', value: data[temp].value[1], xAxis: data[temp].value[0], yAxis: data[temp].value[1] }] ] } }] }); }, 1000);