gpt4 book ai didi

javascript - 更新在不可见的 HighCharts 系列问题上已更改的数据点

转载 作者:行者123 更新时间:2023-11-28 09:19:50 25 4
gpt4 key购买 nike

我正在使用 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;
}

最佳答案

经过一番调查,我发现了这个问题。显然,在该系列至少可见一次之前,data 数组不会被填充,因此您无法检查那里的数据是否存在。我发现了一个处理过的数据队列,其中保存的数据似乎有效。

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;
}

关于javascript - 更新在不可见的 HighCharts 系列问题上已更改的数据点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15154169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com