2017-06-14 81 views
1

我使用c3.js繪製出一些時間序列數據和圖表它去各地做某種原因迴路的地方時,有沒有需要循環。c3.js花時間序列圖倒退

這裏是小區的所有5個的,我策劃 enter image description here

左看右看的只是其中之一,我們可以看到,它落後的循環,即使沒有點向後的看法。

enter image description here

我知道那是因爲擬合算法的,但我不知道如何解決它。除了設置數據和樣條曲線以外,我沒有爲c3使用任何其他配置。

重現該問題,並看到自己,你可以嘗試this page,並替換爲以下代碼片段:

var chart = c3.generate({ 
    data: { 
     columns: [ 
      ['X', 1, 2, 3.9, 4, 5, 6], 
      ['data1', 30, 200, 100, 400, 15, 250], 
      ['data2', 130, 100, 140, 200, 150, 50] 
     ], 
     x: 'X', 
     type: 'spline' 
    } 
}); 
+0

我認爲,我們需要看到一個[MCVE] –

+0

我在帖子中說我用的,沒有額外配置的基本情節。因此,這裏是我的代碼:http://c3js.org/samples/chart_spline.html – sookool99

+0

好吧,如果喬隨機訪問輔助該鏈接,你會他需要在片段做,看你看到了什麼? –

回答

0

我發現這個問題有意思,所以昨天我增加了一個具體的例子來的問題,其中兩個連續的點在X軸上非常接近,從而再現問題,觸發c3產生「倒退」的樣條曲線。

樣條插補被委託給d3,缺省值爲cardinal類型,但可在C3,像這樣改變:

var chart = c3.generate({ 
    data: { 
     columns: [ 
      ['X', 1, 2, 3.9, 4, 5, 6], 
      ['dataA', 30, 200, 100, 401, 15, 250], 
      ['dataB', 130, 100, 140, 200, 150, 50] 
     ], 
     x: 'X', 
     type: 'spline' 
    }, 
    spline: { 
     interpolation: { 
      type: 'basis' 
     } 
    } 
}); 

查看其它選項this page'linear', 'linear-closed', 'basis', 'basis-open', 'basis-closed', 'bundle', 'cardinal', 'cardinal-open', 'cardinal-closed', 'monotone'

隨着d3,爲了獲得可以在X軸上單調樣條線,你就需要與tension參數,這可以從0.01.0,默認爲0.7(近距離點X軸玩,你需要高值接近1.0)。看this fiddle,玩.tension(0.3),看看曲線如何變化。

遺憾的是,似乎不c3暴露。這可能是向他們的GitHub建議的有效問題。但它不會那麼容易,因爲如果您的數據已變化的X軸的步驟(如例子),你需要一個非恆定tension,而據我知道,只能用在自定義的插補功能實現d3(在c3中更不可能被暴露)。