如何在 c3.js 图表中使用时间序列?

How to use time series in c3.js chart?

我需要根据时间绘制折线图-series.I 我正在使用 c3.js 绘制我的 chart.I 然后 this link 来实现我的要求。

  var chart = c3.generate({
        data: {
            x: 'x',
            xFormat: '%Y',
            columns: [
                ['x', '2010', '2011', '2012', '2013', '2014', '2015','2016'],
                ['data1', 30, 200, 100, 400, 150, 250, 400],
                ['data2', 830, 1200, 1100, 1400, 1150, 1250, 1500],
            ],
            axes: {
                data2: 'y2'
            },

        },

        axis: {
            x: {

                    type: 'timeseries',
                    tick: {
                        format: '%Y'
                    }
            },
            y2: {
                show: true
            }
        },
   });

这段代码工作正常。

但是我在使用时间序列时遇到问题,我的图表显示不正确。

如何实现我的 requirement.I 需要使用具有数据时间秒的时间序列绘制批量数据。

我的要求是:

['x', '2013-01-01 12:00:00', '2013-01-02 12:00:05', '2013-01-03 12:00:10', '2013-01-04 12:00:15', '2013-01-05 12:00:20', '2013-01-10 12:00:25', '2013-01-15 12:00:30', '2013-02-15 12:00:35'],
                ['data1', 30, 200, 100, 400, 150, 250, 400],
                ['data2', 830, 1200, 1100, 1400, 1150, 1250, 1500],

       axis: {
            x: {

                    type: 'timeseries',
                    tick: {
                        format: '%Y-%m-%dT%H:%M:%S',
                    }

            },
            y2: {
                show: true
            }
        },

X 轴值显示为 NaN。如何为我的 requirement.Thank 你获得合适的结果。

这是我的问题:

嗯,你的数据没问题。但是您错过了定义时间格式的选项。您可能需要在数据对象中添加 xFormat 属性 并提供正确的格式。

 var chart = c3.generate({
        data: {
            x: 'x',
            xFormat: '%Y-%m-%d %H:%M:%S',
            columns: [
                ['x', '2013-01-01 12:00:00', '2013-01-02 12:00:05', '2013-01-03 12:00:10', '2013-01-04 12:00:15', '2013-01-05 12:00:20', '2013-01-10 12:00:25', '2013-01-15 12:00:30', '2013-02-15 12:00:35'],
                ['data1', 30, 200, 100, 400, 150, 250, 400, 200],
                ['data2', 830, 1200, 1100, 1400, 1150, 1250, 1500, 300],
            ],
            axes: {
                data2: 'y2'
            },

        },

        axis: {
            x: {

                    type: 'timeseries',
                    tick: {
                        format: '%Y-%m-%d %H:%M:%S',
                        rotate: -90
                    }
            },
            y2: {
                show: true
            }
        },
   });

注意 xFormat: '%Y-%m-%d %H:%M:%S' 选项。其实这就是你错过的。这是一个有效的 fiddle.

希望对您有所帮助!!