替换 lineSeries 中的最后一个 Y 值

问题描述

我想在动态图表中替换线系列中的最后一个 X 值,例如,如果添加不同的 y 值与相同的 X ,它会多次绘制图表

  linechart.add({ x: 100,y: 20 } )
  linechart.add({ x: 100,y: 30 } )
  linechart.add({ x: 100,y: 32 } )
  linechart.add({ x: 100,y: 25 } )

但是当我运行类似上面的东西时,我希望最终的折线图应该只从 20 到 25。我需要这个动态图表,它在最后一个 X 值上每秒显示实时价格,但仅在 1 分钟后移动 x 轴。

解决方法

到目前为止,修改 Line Series 中先前推送的数据的唯一方法是清除所有内容并将修改后的数据添加回来。

在您的情况下,因为它只是经常变化的最后一个数据点,您可以将图表分成两个 LineSeries。 第一个 LineSeries 将保存所有已在 X 轴上移动的数据点,如您所述。 第二个 LineSeries 在任何给定时间只保存两个点,一个是最新的“移动”数据点,另一个是最新的实时价格。每次实时价格发生变化时,您将清除然后将这两个点推送到该次要线系列。

linechart.clear().add([ latestShiftedDataPoint,latestLivePriceDataPoint ])

这将带来最佳性能,并希望也能如您所愿。

当然,将图表分成两个系列是完全可选的,如果数据点的总数不是太高,或者如果您想看重简单性而不是性能,当然可以只用一个 LineSeries 来完成,每次实时价格变化时再次使用 clear 方法。