我有一个系列,在线上到处都是许多空值。我需要用虚线或其他任何颜色(另一种颜色)表示这些值之间的差距。
非常欢迎任何帮助:) 谢谢!
在开始之前,让我承认这是一个有趣的问题,但使用 Highcharts 可以很好地解决。虽然这需要一些工作。
这就是我将如何实现这一点:
算法: 对于每个系列 S,创建另一个辅助系列 S'。S的工作是填补空白。S'可以是一条相同颜色的虚线。对于 S 中的每个间隙,连续的空值,假设间隙从点 L(x1,y1) 开始,到点 R(x2,y2) 结束。点 L 和 R 需要在 S' 上。假设点 L 和 R 彼此相距 m 个单位,其中 m>=2。我们需要在 L 和 R 之间插入 m-1 个点。我们可以通过线性插值来做到这一点。我们将这些点称为 P1, P2 .. Pm-1 其中 Pi = { x2-x1 + i, y1 + (y2 -y1)/m }
可用性:
假设您的原始图表中有系列 T、Q、R 和 S。应用上述算法后,您将拥有另外 4 个系列,分别命名为 T'、Q'、R' 和 S'。在传说中,将可见 8 个系列。但我们只想要 4 个 - 原始的。您可以通过使用系列的“linkedTo”属性来完成此操作。所以 T' 将链接到 T,S' 将链接到 S 等等。因此,不会显示 S' 的图例,当您通过单击图例切换 S 时,S' 将自动切换。
链接到: http
://api.highcharts.com/highstock#plotOptions.series.linkedTo
代码位置:
如算法中所述,您需要读取现有系列并插入辅助系列。您可以在图表加载完成并且所有系列都可以访问时调用的 load() 回调函数中执行此操作。
加载回调:http
://api.highcharts.com/highstock#chart.events.load
添加系列:http://api.highcharts.com/highstock#Chart.addSeries()
干杯!