HighStock:导航器触及右边界时图表会损坏

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

我正在开发一个Web应用程序,该应用程序可以处理并显示来自某些设备的大量实时数据。为了可视化数据,我决定使用HighStock。在大多数数据上似乎效果很好:

chart 1

但是,当底部导航器触及右边界时,图片将变得完全不同:

chart 2

时间轴几乎相同,但是点数不同,垂直比例也不同……这是怎么回事?如何解决?

我的代码看起来像这样:

const ch1 = Highcharts.stockChart('chart1', {
    rangeSelector: {
        selected: 1,
        inputEnabled: false,
        buttonTheme: {visibility: 'hidden'},
        labelStyle: {visibility: 'hidden'},
    },
    title: {
        text: 'Metrics',
    },
    series: [{
        name: 'Sensor 1', data: [],
    }, {
        name: 'Sensor 2', data: [],
    }, {
        name: 'Sensor 3', data: [],
    }]
});

// a,b,c gets values from the server
// They are arrays of pairs of timestamp & value
ch1.series[0].setData(a);
ch1.series[1].setData(b);
ch1.series[2].setData(c);
// tm_min & tm_max are dynamically calculated using the data
ch1.xAxis[0].setExtremes(tm_min, tm_max);

更新: Here is an example,其中包含我2%的数据–尝试执行与上述相同的操作。

javascript highcharts
1个回答
0
投票

我找到了解决方案。此问题是由您的数据和Highstock中默认启用的xAxis.ordinal引起的。您的数据在图表的右侧有许多空白点,并且由于顺序关系,没有显示空白区域,但dataGrouping对数据分组的方式有所不同。

在此处检查此https://jsfiddle.net/BlackLabel/x1tgqbw6/(禁用顺序):

  xAxis: {
    ordinal: true
  }

因此,解决方案是禁用xAxis.ordinal或生成没有空点的数据:

API参考:

© www.soinside.com 2019 - 2024. All rights reserved.