Javascript Highcharts addPoint函数不显示任何内容
在第一种情况下,我为糟糕的英语道歉,我是法国人 所以我最近尝试在HighChartsJ上显示一些定时数据 我尝试使用ajax接收数据,并创建了一个函数来添加我想要的所有点 但当我尝试加载它时,我看到光标上的信息,但没有显示任何点!:/ 以下是我对AJAX请求的成功函数:Javascript Highcharts addPoint函数不显示任何内容,javascript,jquery,ajax,highcharts,Javascript,Jquery,Ajax,Highcharts,在第一种情况下,我为糟糕的英语道歉,我是法国人 所以我最近尝试在HighChartsJ上显示一些定时数据 我尝试使用ajax接收数据,并创建了一个函数来添加我想要的所有点 但当我尝试加载它时,我看到光标上的信息,但没有显示任何点!:/ 以下是我对AJAX请求的成功函数: success: function(resultat){ function addPoint(){ var chart = $('#graphR
success: function(resultat){
function addPoint(){
var chart = $('#graphResult').highcharts();
for(i in resultat){
chart.series[0].addPoint([Date.UTC(year, month, day, resultat[i]["time"].split(":")[0]), resultat[i]["value"]], true);
}
}
$('#graphResult').highcharts({
chart: {
type: 'spline',
events: {
load: addPoint
}
},
title: {
text: 'Température du jour'
},
xAxis: {
type: 'datetime',
dateTimeLabelFormats: { // don't display the dummy year
minute: '%H:%M',
hour: '%H:%M',
},
title: {
text: 'Heure'
}
},
yAxis: {
title: {
text: 'Température (°C)'
},
min: 0
},
tooltip: {
headerFormat: '<b>{series.name}</b><br>',
pointFormat: '{point.y:.2f} °C'
},
plotOptions: {
spline: {
marker: {
enabled: true
}
}
},
series: [{
name: "Température du " + String(day) + "/" + String(month) + "/" + String(year),
}]
});
}
成功:函数(resultat){
函数addPoint(){
var图表=$(“#graphResult”).highcharts();
for(结果中的i){
chart.series[0].addPoint([Date.UTC(年、月、日、结果[i][“时间”]).split(“:”[0])、结果[i][“值”]、true);
}
}
$(“#graphResult”)。高图({
图表:{
类型:“样条线”,
活动:{
加载:添加点
}
},
标题:{
文字:“当前温度”
},
xAxis:{
键入:“日期时间”,
dateTimeLabelFormats:{//不显示虚拟年份
分钟:“%H:%M”,
小时:“%H:%M”,
},
标题:{
文本:“Heure”
}
},
亚克斯:{
标题:{
文字:“温度(°C)”
},
最低:0
},
工具提示:{
headerFormat:“{series.name}
”,
pointFormat:“{point.y:.2f}°C”
},
打印选项:{
样条曲线:{
标记:{
已启用:true
}
}
},
系列:[{
名称:“温度”+字符串(日)+“/”+字符串(月)+“/”+字符串(年),
}]
});
}
如您所见,我有这些信息,但没有显示任何要点:正如您在评论中所说,问题在于服务器返回的数据 这是您的Json:
[{"time":"09:00:00","value":"25"},{"time":"10:00:00","value":"30"}]
“value”是字符串,然后必须解析为Float:
chart.series[0].addPoint(
[Date.UTC(year, month, day,
resultat[i]["time"].split(":")[0]),
parseFloat(resultat[i]["value"])], true
);
Fiddle:我认为您应该检查从服务器返回的数据,我尝试了您的代码,它正在工作:我为“resultat”变量添加了一个console.log,您应该使用浏览器开发人员控制台检查数据。甚至在for循环上放置一个断点。感谢您的帮助,我认为这是因为我的json没有正确解析!这里是console.log的输出:0:Object date:“2015-09-18”id:“237”time:“09:00:00”type:“temperature”value:“25”这里是一个正确解析的json:[{“time”:“09:00:00”,“value:“25”},{“time:“10:00:00”,“value:“30”}],但是现在我在resultat变量中没有得到任何东西:我编辑了答案,我认为在您的场景中,最好使用parseFloat()而不是parseInt()(可以使用十进制温度值)。更新小提琴: