13

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

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

我能做些什么来解决这个问题?

4

2 回答 2

25

这是由于涡轮阈值选项:

“当一个系列包含比这更长的数据数组时,只允许使用一维数字数组或具有 x 和 y 值的二维数组。此外,仅测试第一个点,其余的被假定为相同的格式。这样可以节省昂贵的长系列数据检查和索引。”

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

这是一个jfFiddle演示您的情节与设置为 2000 的阈值一起工作。

这是修改后的代码部分:

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

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

于 2012-09-18T00:09:18.230 回答
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);
                }
于 2016-03-25T19:12:00.750 回答