我正在使用 HighCharts 显示包含折线图和条形图的图形。默认情况下,在您单击系列标题之前,条形系列不可见。我有代码可以即时更新条形图,但我注意到在图表不可见时我无法获取现有信息。
当我从服务器获取数据时,我会尝试更新任何现有的点,如果有的话,添加新的点。如果系列可见,则此代码效果很好,但如果系列不可见,则chart.series[1].data[idx]
返回undefined
。单击该系列将显示图表,因此我知道数据在某处。我究竟做错了什么?
if (chart.series[1].data[idx] && chart.series[1].data[idx].y != inRate)
{
chart.series[1].data[idx].update(inRate);
redraw = true;
}
else if (!chart.series[1].data[idx])
{
var time = IntervalToTime(i, doorInterval);
chart.series[1].addPoint([time, inRate], false, false);
redraw = true;
}
经过一番调查,我取得了一些进展。显然,在该系列至少可见一次之前,数据数组不会被填充,因此您无法检查那里的数据是否存在。我发现了一个处理过的数据队列,其中保存了数据,这似乎可以工作,但是在尝试调用时执行此方法会导致错误chart.series[1].data[idx].update(inRate)
if (chart.series[1].processedXData[idx] && chart.series[1].processedYData[idx] != inRate)
{
chart.series[1].data[idx].update(inRate);
redraw = true;
}
else if (!chart.series[1].processedXData[idx])
{
var time = IntervalToTime(i, doorInterval);
chart.series[1].addPoint([time, inRate], false, false);
redraw = true;
}