0

嗨,伙计们,

我目前正在学习使用 HighCharts 来绘制一些数据。

在学习了在本地页面上设置之后,是时候动态地/通过 ajax 加载数据了。

图表加载良好,系列定义如下:

var series1=[];
var series2=[];
var series3=[];

然后我有一个按钮,它触发一个 ajax 请求,这些数组填充了数据,从 sql 数据库中提取,格式化,然后发送回网页:D(这需要一段时间)

现在 - 填充了这些数组后,我希望让 HighCharts 来绘制这些数据。

我尝试使用 chart.refresh(); 在我的 ajax 结束时,但这似乎给出了错误:

Uncaught TypeError: Object #<Object> has no method 'refresh'

我有点难过并努力取得进展 - 非常感谢朝正确方向轻推!

编辑:

chart.series[0].setData(series1);

是在阵列被填满后需要触发的东西。

4

1 回答 1

3

如果没有看到您的其余代码,这是一个疯狂的猜测:您已经使用 HighCharts 选项中已经“创建”的这 3 个系列设置了图表。您正在加载页面,定义您的 HighCharts 选项(包括 3 系列 - 作为空系列),然后触发 ajax 调用以填充三个系列的数据。

但是,您实际上并没有将每个系列中的新数据推送到图表中。您只是在将 var 发送到 HighCharts 后将它们设置为新值 - refreshing(如果即使是有效的 HighCharts 调用)HighCharts 也不会“什么也不做”,因为它没有重新读取 3 个 var 值。

另外,请注意 chart.refresh 似乎不是有效的 HighCharts 调用。您可以尝试 - 但我chart.redraw认为这对您的情况没有帮助,因为您如何定义数据系列元素(再次,不知道,因为重要的部分 - 告诉 HighCharts 代码中有新数据没有出现) . 查看API以及动态分配数据的指针。

您如何更新系列值?你如何告诉图表有新数据?查看其余代码会很有帮助,因为 3 行代码var x=[]并没有真正用处。

这是使用 设置系列数据的基本方法setData

$('#button').click(function() {
    chart.series[0].setData([129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4, 29.9, 71.5, 106.4] );
});
于 2013-01-29T13:58:33.357 回答