2013-03-06 170 views
20

我使用d3.js來繪製簡單的線圖。我想知道是否有辦法在圖表中創建「孔」,也就是說,如果在沒有可用數據的情況下可以中斷或切斷該行。使用d3繪製不連續的線

我正在考慮刪除我不需要的域名,或者在特定的段中將行權重設置爲0,但我找不到任何一種方法。

感謝您的幫助!

回答

43

D3 line發電機有一個內置函數來做到這一點,line.defined。你可以使用這個函數來控制你的行的定義和不在的位置(比如你缺少數據的地方)。如果你想讓你的行在undefined數組中的第二個值是一個javascript NaN值的時候沒有定義,你可以說:

line.defined(function(d) { return !isNaN(d[1]); }); 

Here是一個很好的例子,在行動。

+0

你的例子不會工作(如預期的),因爲如果'd'是'null',函數將永遠不會被調用,或者不能確定未定義的位置在哪裏(例如在x軸上)。在代碼中使用的代碼是'return d.y!= null'。 – Rouby 2015-03-09 13:37:05

+0

謝謝@Rouby。我已經從API文檔的當前示例更新了答案。 – Josh 2015-03-09 22:37:44