Javascript HighStock:当导航器触到右边框时,图表会被破坏

Javascript HighStock:当导航器触到右边框时,图表会被破坏,javascript,highcharts,Javascript,Highcharts,我正在开发一个web应用程序,它可以处理和显示来自某些设备的大量实时数据。为了使数据可视化,我决定使用HighStock。它似乎对大多数数据都很有效: 但是,当底部导航器接触到右边框时,图片会变得非常不同: 时间线几乎相同,但点数不同,垂直比例也不同。。。这是怎么回事?如何修复它 我的代码如下所示: 常量ch1=高位图表。股票图表'chart1'{ 范围选择器:{ 选定:1, 输入:错误, buttonTheme:{visibility:'hidden'}, 标签样式:{visibility:'

我正在开发一个web应用程序,它可以处理和显示来自某些设备的大量实时数据。为了使数据可视化,我决定使用HighStock。它似乎对大多数数据都很有效:

但是,当底部导航器接触到右边框时,图片会变得非常不同:

时间线几乎相同,但点数不同,垂直比例也不同。。。这是怎么回事?如何修复它

我的代码如下所示:

常量ch1=高位图表。股票图表'chart1'{ 范围选择器:{ 选定:1, 输入:错误, buttonTheme:{visibility:'hidden'}, 标签样式:{visibility:'hidden'}, }, 标题:{ 文本:“度量”, }, 系列:[{ 名称:“传感器1”,数据:[], }, { 名称:“传感器2”,数据:[], }, { 名称:“传感器3”,数据:[], }] }; //a、b、c从服务器获取值 //它们是时间戳和值对的数组 ch1.series[0].setDataa; ch1.series[1].setDatab; ch1.series[2].setDatac; //tm_min和tm_max是使用数据动态计算的 ch1.xAxis[0]。设置极值m_min,tm_max;
更新:使用2%的数据–尝试如上所示的方法。

我找到了解决方案。该问题是由Highstock中默认启用的数据和xAxis.ordinal引起的。您的数据在图表右侧有许多空点,由于ordinal,未呈现空空间,但数据分组方式不同

请在此处依次选中此项:

  xAxis: {
    ordinal: true
  }
因此,解决方案是禁用xAxis.ordinal或生成不带空点的数据:

API参考:


这可能是因为series.dataGrouping:。如果这对您没有帮助,请用一个工作演示详细说明此问题,并使用具有相同结构的示例数据。@WojciechChmiel感谢您的回复!是的,我注意到一些分组。。。嗯,我不想关闭它,因为我的数据非常大,一个系列中有超过100000个点,但是为什么它在右边界处的行为如此奇怪呢?你知道如何解决这个问题吗?不幸的是,如果没有复制品,很难判断发生了什么。你能准备一下吗?@WojciechChmiel我创建了一个例子,看一看就好了!我认为修复数据会更好。但我不明白,你说空话是什么意思?如果使用console.logbytes.slicelen-100打印尾部值,len I将看到现有值。此外,所有值都成为获取时间戳的点,该时间戳是使用行中的固定步长tm=Math.floorcurrent.measured+1000*i/current.freq计算的。我只是看不到任何内容是空的,所以我不理解问题的原因…请检查此演示中的控制台结果:。正如您所看到的,在传递给图表系列的数据中有[156996991464,未定义]这样的点。明白了!非常感谢。