我正在尝试使用jQuery从xml源填充高图系列。 XML文件是从RRDTool导出的,具有以下格式:
<data>
<row><t>1347559200</t><v>2.1600000000e+01</v></row>
<row><t>1347562800</t><v>2.1504694630e+01</v></row>
<row><t>1347566400</t><v>2.1278633024e+01</v></row>
.
.
.
</data>
我的方法是使用jQuery加载数据并将系列推送到图表:
$.ajax({
type: "GET",
url: "data/data.xml",
dataType: "xml",
success: function(xml) {
var series = { data: []
};
$(xml).find("row").each(function()
{
var t = parseInt($(this).find("t").text())*1000
var v = parseFloat($(this).find("v").text())
series.data.push([t,v]);
});
options.series.push(series);
}
});
我最终收到以下错误:
意外值NaN解析y属性
我创建了一个JSFiddle来演示代码:http://jsfiddle.net/GN56f/
答案 0 :(得分:2)
问题:
var
和options
chart
;
options
options
之前试图记录Highcharts
?您传递了以下series
。这是预期的结果?我认为没有。
series: [{
name: 'Temperature',
data: []
}, {
data: [// data from xml]
}]
options.series.data.push
无效,您必须使用setData动态更新,但是有问题,您不知道有多长时间请求你参加,所以我建议你在success
。请尝试以下方法。
success: function(xml) {
$('row', xml).each(function() {
options.series.data.push([t,v]);
});
//@todo: declare chart as global before the ajax function
chart = new Highcharts.Chart(options);
}