2013-05-10 75 views

回答

1

开始之前,让我承认它是一个有趣的问题,但使用Highcharts可以解决。虽然这需要一些工作。

这是我将如何实现这一点:

ALGO: 对于每一个系列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 +(Y 2 -Y 1)/ M}

可用性: 如果让我们说你有T系列,Q,R和S在您的原始图表中。应用上述算法之后,您将会再添加4个系列,分别命名为T',Q',R'和S'。在传说中,将会看到8个系列。但我们只想要4 - 原来的。您可以使用系列的'linkedTo'属性来完成此操作。所以T'将与T相连,S'与S等链接。因此,S'的图例将不会显示,当您通过点击图例来切换S时,S'会自动切换。
linkedTo:代码http://api.highcharts.com/highstock#plotOptions.series.linkedTo

地点: 作为算法中提到的,你需要阅读现有的系列,并插入辅助系列。您可以在load()回调函数中执行此操作,该函数在图表完成加载并且所有系列均可访问时调用。
负载回调:http://api.highcharts.com/highstock#chart.events.load
添加系列:http://api.highcharts.com/highstock#Chart.addSeries()

干杯!

+0

是的,这就是我的想法......只是很多我希望不会做的体操。我相信空值显示管理应该包含在Highscharts中,你不觉得!? – MastaP 2013-05-13 14:58:22

+0

是的,我认为这将是一个很好的功能要求。看起来这个功能请求已经由某人发出: http://highcharts.uservoice.com/forums/55896-general/suggestions/1010275-add-broken-line-segments-for-null-values – 2013-05-13 16:19:23

+0

我刚跑进入这个评论,它节省了我的一天。这里[JSFiddle上的演示](http://jsfiddle.net/AkyRhO/7aqhx8ac/) – AkyRhO 2017-03-02 11:22:27