如何在c3js动态图表上进行平滑(水平)转换



我开始玩c3js,希望能得到一个好看的动态图表。在测试它时,我注意到每个load函数之间的转换似乎没有任何类型的转换。我也尝试使用flow函数,但得到了相同的结果。我只在这个主题上找不到任何东西,但基本上,当新的数据点出现时,有没有办法改变这种行为并实现平稳过渡?

你可以在这里看到我的例子:

        transition: {
            duration: 0
        },

https://jsfiddle.net/g4cq6pg0/1/

当我真正启用转换时,它工作得很好(水平),直到我开始删除一些数据以添加新的指标,然后事情就恶化了。除了水平转换,它还垂直转换,这使得事情很难观察(350是默认值):

        transition: {
            duration: 350
        },

https://jsfiddle.net/g4cq6pg0/2/

如何仅强制平滑的水平过渡??以下是我的意思的一个例子(仅使用D3):

http://bl.ocks.org/simenbrekken/6634070

是的,线在移动,但点只是垂直上下浮动以适应当前值,而不是随着线移动。。。

看看这里的问题-->动态时间序列C3js图表

流api可以让你做你想做的事,但有一个严重的错误(请参阅我的答案),因此调整提问者自己的答案可能是你实现平稳水平过渡的最佳选择

PS。如果你也想停止y轴的自动调整大小,你需要在图表声明中这样做:

axis: {
        y: {
            max: 1 // translates to 100% on the y axis
        }
    }

c3js有一个.flow方法专门用于此:http://c3js.org/samples/api_flow.html

请注意,如果您切换到其他选项卡并在一段时间后返回,它就会开始冻结。

最新更新