highcharts Highstock数据分组不适用于实时数据

gtlvzcf8  于 2023-01-26  发布在  Highcharts
关注(0)|答案(1)|浏览(188)

我目前正在为我的公司做一个项目,我需要绘制高库存图表,显示我们主要建筑物的能源数据。
由于这是实时数据,每隔几秒钟就会有新的数据点出现在WebSocket上。然而,图表应该每小时只显示一个数据点。我想用highstock dataGrouping来清除这个问题,但它实际上并不起作用。它对数据点进行了分组,但仍然显示了数据点之间的“传输”,即图表线。因此,整个图表完全不可读。
在项目的另一个版本中,图形仅显示每组的最新数据点(如图表选项中的"近似”对象所指定),但在所选间隔运行后也不会开始新组。
我一直坐在这个问题上约3天,现在还没有找到任何适当的完全可行的解决方案。
不幸的是,由于公司政策和必要的挂钩和组件,这是只在这里使用的公司,我不能给予你一个jsfildle或类似的,即使我真的很想.我能做的是给你的配置,也许你发现有什么问题?

const options = {
    plotOptions: {
        series: {
            dataGrouping: {
                anchor: 'end',
                approximation: function (groupData: unknown[]) {
                        return groupData[groupData.length - 1];
                    },
                enabled: true,
                forced: true,
                units: [['second', [15]]],
            },
            marker: {
                enabled: false,
                radius: 2.5,
            },
            pointInterval: minutesToMilliseconds(30),
            pointStart: currentWeekTraversed?.[0]?.[0],
        },
    },
}

这将是绘图选项。
如果你需要更多的信息,请告诉我。我会看看我能给你发些什么和怎样给你。
谢谢你的帮助。

kqhtkvqz

kqhtkvqz1#

这是dataGrouping如何处理实时数据的示例,请尝试重新创建您的案例,或者使用Highcharts React官方 Package 页面中的另一个演示。

rangeSelector: {
    allButtonsEnabled: true,
    buttons: [{
      type: 'minute',
      count: 15,
      text: '15S',
      preserveDataGrouping: true,
      dataGrouping: {
        forced: true,
        units: [
          ['second', [15]]
        ]
      }
    }, {
      type: 'hour',
      count: 1,
      text: '1M',
      preserveDataGrouping: true,
      dataGrouping: {
        forced: true,
        units: [
          ['minute', [1]]
        ]
      }
    }
  },

演示:https://jsfiddle.net/BlackLabel/sr3oLkvu/

相关问题