2015-09-09 27 views
1

給出錯誤的值我有號碼依次上升爲15〜20,再滴加至16.從15至19都顯示在圖中的正確位置的陣列,但只要作爲隨後數字越低,它將顯示錯誤的值。D3線圖在最高數

下面是一個例子,你可以看到它永遠不會打20時,X軸是5,而周圍19.7ish: http://jsbin.com/yuzamuqile/edit?html,output

任何人都知道這個問題可能是什麼?

感謝

回答

2

這是因爲你使用的「基礎」插值,它使用一個測試樣條來消除極端峯值,也就是你看到的。

使用「線性」使用直線,而不是曲線。

   var lineGen = d3.svg.line() 
        .x(function(d) { 
         return xScale(d.time); 
        }) 
        .y(function(d) { 
         return yScale(d.price); 
        }) 
        .interpolate("linear"); 
+0

感謝您的回覆,並幫助我理解此問題與插入有關!爲了實現平滑的曲線而不平滑出現極值是很困難的,那麼我想呢?我能看到的唯一選擇是單調的,並且它沒有完全達到我設計的標準。 –

+0

你可以嘗試使用「紅衣主教」,這意味着曲線將通過你的每一點,但代價是略微較少的「連續」,儘管它仍然是數學連續的,因爲每個點的一階導數都是相同點的相同點。 –

+0

這個網站給出了每種不同類型的例子:http://www.d3noob.org/2013/01/smoothing-out-lines-in-d3js.html –