2017-06-14 52 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中更不可能被暴露)。