Highcharts 不显示包含大量数据点的系列

问题描述 投票:0回答:2

我有一个图表,我想根据用户的日期范围显示它。该特定图表每 15 分钟就有一个数据点。因此,如果用户选择较大的日期范围,每个系列可能会有很多数据点。这是几个例子:

在第一个示例中,图表确实显示了。在第二个示例中,图表不显示。有一个 Highstock 演示(52,000 个数据分组点)可处理大量数据点。我尝试将上面的图表更改为 highstock 图表,但结果仍然相同。

我可以做什么来解决这个问题?

highcharts
2个回答
26
投票

这是由于涡轮阈值选项:

“当一个系列包含一个比这个长的数据数组时,只有一个 数字的维数组,或具有 x 和 y 的二维数组 值是允许的。另外,只测试第一点,其余的 假设格式相同。这节省了昂贵的数据检查费用 并在长系列中建立索引。”

默认设置为1000点。您的图表未渲染,因为系列中的每个点都是一个对象,并且它们的数量大于阈值。

这里有一个 jfFiddle 演示了将阈值设置为 2000 时的绘图。

这是修改后的代码部分:

plotOptions: {
     spline: {
     turboThreshold: 2000,
    ...

另一种解决方案是将系列数据编码在二维数组中,而不是让每个点由具有 x-y 属性的对象表示。


0
投票

如果您使用 PHP 生成响应,turboThreshhold 的解决方法是这样的:

if (count($responseObj) > 1000) {
    $modolo = round(count($responseObj) / 1000);
    for ($i = count($responseObj) - 1; $i >= 0 ; $i--) {
        if (($i % $modolo) != 0) {
            unset($responseObj[$i]);
        }
    }
    $responseObj = array_merge($responseObj);
}
© www.soinside.com 2019 - 2024. All rights reserved.