关于 highstock:Highcharts 在缩放或使用导航器后显示图表数据不正确

Highcharts visualizes chart data incorrectly after zooming or using the navigator

我正在使用带有四个 yAxis 的 highstock。每个轴都有一个超过 400 个点的系列。最初图表是正确的,但只要进行最轻微的缩放或稍微移动导航器,整个图表就会发生变化。线在不应该连接的地方连接起来,yAxis 似乎已损坏,并且不再尊重数据点。

结果:显示完全错误数据的图表。

当使用非序数 xAxis 时,这会变得特别烦人,尽管 bug 不需要出现。

预期视图(未缩放或更改导航):
Right data after load

使用导航器点连接后,yAxis 发生了不必要的变化,预期的间隙不再可见:
Wrong shown series after use of navigator

三轴或所有系列都在一个轴上时不会发生该错误。似乎还取决于图表的高度和宽度。

我有一个 JSFiddle 用于演示。这段代码没什么特别的。主要是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
$(function () {
    $('#container').highcharts('StockChart', {
        chart: {
            zoomType: 'xy'
        },
        xAxis: {
            ordinal: false
        },
        yAxis: [{
            labels: {
                format: '{value}°C'
            },
            title: {
                text: 'Temperature1'
            }
        }, {
            title: {
                text: 'Temperature2'
            },
            labels: {
                 format: '{value}°C'
            }

        }, {
            title: {
                text: 'Temperature3'
            },
            labels: {
               format: '{value}°C'
            }
        }, {
            title: {
                text: 'Temperature4'
            },
            labels: {
               format: '{value}°C'
            }
        }],
        series: [{
            name: 'Temp1',
            type: 'line',
            yAxis: 0,
            data: [{"x": 1472569504959,"y": 37.0000003625635 }, ...
        }, {
            name: 'Temp2',
            type: 'line',
            yAxis: 1,
            data: [{"x": 1472569504959,"y": 37.0000003625635 }, ...
        }, {
            name: 'Temp4',
            type: 'line',
            yAxis: 3,
            data: [{"x": 1472569504959,"y": 37.0000003625635 }, ...
        }, {
            name: 'Temp3',
            type: 'line',
            yAxis: 2,
            data: [{"x": 1472569504959,"y": 37.0000003625635 }, ...
        }]
    });
});

这似乎是 dataGrouping 选项的函数。

禁用dataGrouping,它似乎工作正常。

代码:

1
2
3
4
5
6
7
plotOptions: {
  series: {
    dataGrouping: {
      enabled: false
    }
  }
}

更新小提琴:

  • http://jsfiddle.net/jlbriggs/ydqdd624/4/

参考:

  • http://api.highcharts.com/highstock/plotOptions.series.dataGrouping

  • http://www.highcharts.com/docs/advanced-chart-features/data-grouping