2013-09-26 71 views
0

我具有變化的長度的數據陣列,其中一個x值(年),其是一個有限數年的一部分,例如:d3.js:是否可以按鍵而不是索引進行轉換?

var data = [{Year: 2008, Value: 5}, {Year: 2009, Value: 6}] 

var data = [{Year: 2007, Value: 8}, {Year: 2009, Value: 10}, {Year: 2010, Value: 11}] 

現在,如果我過渡從具有更多價值的數據集到具有更少價值的數據集,將(2007,8)點插值到(2008,5),並且看起來很奇怪。我想要的是按鍵插入(在這種情況下,年)。

我完全理解如何用following tutorial的條形圖來實現,它只是將一個按鍵功能傳遞給selection.data以便通過鍵而不是索引進行綁定。

對於某一行的情況,由於您傳遞的數據必須是一個數組數組(數據是一個點數組),因此您似乎無法傳遞一個鍵函數。

如何使用折線圖處理類似的結果?

回答

2

這取決於您使用的生產線。總之,沒有簡單的方法來做到這一點。這裏有幾個選項。

  • 調整圖形的比例。這將使轉變看起來不那麼怪異。
  • 將您的線劃分爲幾個部分。這樣,您可以刪除其中一個分段而不影響其他分段。這可能不起作用,取決於你使用的插值等。
  • 添加虛擬元素來填充您的數據數組始終具有相同的長度。可能不適合您的應用程序,因爲線的部分仍然會繪製爲虛擬元素。

它完全取決於您的應用程序哪個選項是最合適的(或可能有另一個)。我可能會首先嚐試第一個,因爲它很容易實現。

+0

非常感謝您的快速回復。選項1絕對看起來更容易,但從設計意義上講,我認爲明確說明某些年份缺少數據會更好,另外我剛剛意識到如果兩者之間存在缺失年份,那麼該圖只會沒有道理。所以我想我會看看選項2和3.再次感謝! –

+0

對於缺失的數據位,您需要第二個選項,即有多個線段。 –

+0

謝謝你,拉爾斯。花了我5個小時找到這個線程,並閱讀你不能通過鍵綁定行數據。 – peter

相關問題