我有一个包含3个不同绘图线的高图图表。 Y轴是数字格式,X轴是dateTime。这些图表正在正确显示,但X上的标签显示为00:00:00'并且工具提示显示1970年1月1日。
这是我初始化图表的代码:
Co2Chart = new Highcharts.Chart({
chart: {
renderTo: 'co2-graph',
type: 'spline',
animation: Highcharts.svg,
marginRight: 10,
events: {
load: function () {
updateData();
setInterval(updateData, 5000);
}
}
},
title: {
text: ''
},
xAxis: {
type: 'datetime',
tickPixelInterval: 150,
labels: {
formatter: function () {
return Highcharts.dateFormat('%H:%M:%S', this.value);
}
}
},
yAxis: {
title: {
text: 'CO2, ppm'
},
plotLines: [{
value: 0,
width: 1
},{
value: 1,
width: 1
},{
value: 2,
width: 1
}]
},
tooltip: {
formatter: function () {
return '<b>' + this.series.name + '</b><br/>' +
Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) + '<br/>' +
Highcharts.numberFormat(this.y, 2);
}
},
legend: {
enabled: true
},
plotOptions: {
spline: {
marker: {
enabled: false
}
}
},
exporting: {
enabled: false
},
series: [{
name: 'Master',
data: []
},
{
name: 'Slave 1',
data: []
},
{
name: 'Slave 2',
data: []
}]
});
这个推送数据:
for(var i = 0; i < array.length; i++){
var time = Date.parse(array[i]["dateTime"]);
Co2Chart.series[0].addPoint(array[i]["masterCo2"], time);
Co2Chart.series[1].addPoint(array[i]["slave1Co2"], time);
Co2Chart.series[2].addPoint(array[i]["slave2Co2"], time);
}
传递给Date.parse
的DateTime字符串如下所示2016-03-28 22:47:49
。并以毫秒为单位 - 1459198069000
为什么它没有显示的任何想法?
答案 0 :(得分:1)
问题是你如何使用addPoint
方法:
Co2Chart.series[0].addPoint(array[i]["masterCo2"], time);
应该是:
Co2Chart.series[0].addPoint([time, array[i]["masterCo2"]]);
或者:
Co2Chart.series[0].addPoint({
y: array[i]["masterCo2"],
x: time
});