2013-01-03 22 views
2

我想在D3中創建實時線形圖。我的數據格式爲[[日期,值],[日期,值]。當我沒有收到任何數據時,數值將會是0.我希望這些數值的分界線不被繪製。然後我會在我的圖表中找到缺少數據的空白。當沒有數據時,在SVG路徑中有間隙

任何人有任何想法我會怎麼做?

+1

你有迄今爲止編寫任何代碼 – Sirko

+0

我做什麼,我已經創造了什麼,我現在有一個JS提琴:http://jsfiddle.net/ srZwS/1 – dtsn

回答

1

您可以通過在一組軸上創建幾個圖來輕鬆完成此操作。每個連續的數據集將是一個單獨的圖。然後只要確保你給它們分配所有相同的顏色等。

+0

感謝您的快速回復,我試過這個想法,我只是覺得我的數據集太複雜了,我創建了一個JS小提琴http://jsfiddle.net/srZwS/1其中的細節出了問題,我在18:00 - 09:00沒有數據,D3只是在兩者之間劃了一條直線,我不想加入 – dtsn

+0

你面臨的問題是它確實不是正確的類型的圖來表示不連續的數據,使用條形圖會更合適(適合不連續的數據),使用線圖必須將你分離出來r數據形成多行。 –

+0

你是完全正確的,應該使用條形圖。我只有一個想要使用折線圖的用戶。 – dtsn

11

試試這個。變量my_dataset是具有屬性{x,y}的對象的數組。 「楠:?作爲y值在可視化跳過

var line = d3.svg.line() 
    .x(function(d, i) { return x(d.x); }) 
    .y(function(d) { return y(d.y); }) 
    .defined(function(d) { return !isNaN(d.y); }) 
    ; 

my_visualization.append("svg:path") 
    .data([ my_dataset]) 
    .attr("d", line) 
+2

你可以在這裏找到一個很好的例子:http://bl.ocks.org/mbostock/3035090 –