我有一个mysql db喂养对我的highcharts。它为pH计提供时间戳和传感器值。当我加载图表时,我得到了显示时间戳和传感器值的工具提示,但是当它从数据库连续提供时,工具提示显示未定义为我的时间戳,但我构建的数组有它。我希望尽可能具体。我认为我正在构建错误的json字符串,这就是为什么highcharts不知道如何处理它。
这是我对php页面的回调:
events: {
load: function() {
var chart = this;
var series = this.series[0];
setInterval(function() {
$.getJSON("php/dataPhIncremental.php", function(data) {
// Only add data points if the latest date in the DB is different
if (!(chart.yAxis[0].dataMax == data[0].data[0])) {
$(chart.series).each(function(i, series) {
console.log(data[0]);
series.addPoint([data[0].timestamp[0], data[0].data[0]]);
});
}
else {
console.log("did not write point"+ oldPoint + " " + data[0].data);
}
})
}, 1000);
}
认为getJSON将转到php页面并获取json字符串,让highcharts用它做它想要的东西。我错了。
我的php json返回对象示例:
[{"name":"pH","data":[4.76],"timestamp":["2015-12-23 12:31:42"]}]
这是针对增量回调的。初始字符串包含10对。
答案 0 :(得分:0)
尝试使用日期类型:
console.log(data[0]);
d = new Date(data[0].timestamp[0]);
series.addPoint(d, data[0].data[0]);
尝试使用xAxis:
xAxis: {
type: 'datetime',
labels: {
formatter: function() {
return Highcharts.dateFormat('%e %b', this.value*1000); // milliseconds not seconds
},
}
}