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

时间:2012-09-17 16:31:58

标签: highcharts highstock

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

在第一个示例中,图表会显示。在第二个示例中,不显示图表。有一个Highstock演示(52,000 points with data grouping)可以处理大量数据点。我试图将上面的图表更改为高价图表并仍然具有相同的结果。

我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分:23)

这是由于turbo threshold选项:

  

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

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

这是一个jfFiddle,证明你的情节使用阈值设置为2000。

以下是修改后的代码部分:

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

另一种解决方案是将系列数据编码为二维数组,而不是将每个点用x-y属性表示和对象。

答案 1 :(得分: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);
                }