2013-03-10 16 views
0

我有一個線圖,根據從兩個下拉列表中選擇的值進行更新。數據根據下面的要點進行更新。一切正常,並且所有數據都能夠正確返回,但是當嘗試將更新的數據應用到現有的行/路徑並更新圖形時,行/路徑消失,並且出現分析錯誤。知道這是關於如何將這些新數據應用於線路/路徑的問題 - 任何人都可以提供幫助嗎?將更新的數據應用於線條/路徑?

https://gist.github.com/Majella/202df0a4a5a3ad20fb92

回答

1

我不太清楚,如果你想(一)用新數據更新現有生產線,或(b)保留現有的線路,並添加第二行以新的數據。對於(a),您需要將newdata重新加入原始行,然後重新繪製它。這可以通過簡單的重繪函數來實現,其中函數參數是數據集。您可以在Mike Bostock的General Update Pattern博文中或在我作出演示的even simpler example中看到這個實現。

如果(b)中,您將執行一個數據加入新的數據,你做第一個數據集,這樣的:

var data2 = svg.selectAll('.newData') 
    .data(newdata) 
.enter().append('path') 
    .attr('class', 'newData) 
    .attr("d", line(newdata)); 

而且,它還將第二條線添加到圖表。

+0

謝謝。我想用我在我的代碼中嘗試做的新數據更新現有的行(請參閱要點) - 我已將新數據重新加入此行,但導致解析錯誤? – Newbie 2013-03-11 10:58:54

+0

我已更新我的問題以反映此問題。 – Newbie 2013-03-11 11:08:33

+0

在您的示例中,您尚未重新加入數據,因爲這樣做需要爲selection.data([values])設置新值。您首先將數據連接到'svg.selectAll('dot')。data(data)'。這是你第二次必須做的事。當你在下面說'.attr('d',line(newdata)'它實際上仍然是從原始數據集中繪製,因爲你還沒有以.data([value])格式加入數據。 – nsonnad 2013-03-12 04:06:02

相關問題