簡體   English   中英

如何用c3在y軸上顯示hh:mm:ss格式?

[英]How to show hh:mm:ss format at y-axis with c3?

這是我的數據集:

x: '2014-01-01', '2014-02-02', '2014-03-02', ...
y: '01:30:00', '00:55:00', '01:45:50', ...

我想使用c3.js庫在我的圖表上顯示這些數據。

到目前為止我嘗試了這個(已經將時間轉換為秒):

var chart = c3.generate({
    data : {
        x : 'x',
        columns : [
            ['x', '2010-01-01', '2011-01-01', '2012-01-01', '2013-01-01', '2014-01-01', '2015-01-01'],
            ['sample', 30, 200, 100, 400, 150, 250]
        ]
    },
    axis : {
        x : {
            type: 'timeseries'
        },
        y : {
            tick : {
                format: d3.time.format("%X")
                //or format: function (d) { return '$' + d; }
            }
        }
    }
});

我會做的是這樣的:

  1. 創建一個時間00:00:00的新日期:

    date = new Date('01-01-2016 00:00:00')

  2. 將該日期轉換為時間戳:

    timestamp = date.getTime()

  3. 將Y秒添加到該時間戳:

    timestamp = timestamp + (y * 1000)

  4. 創建一個新日期,使用該值作為輸入:

    date = new Date(timestamp)

  5. 使用d3.time.format地格式化該日期:

    time = d3.time.format("%H:%M:%S")(date)

  6. 把所有的碎片放在一起,把它變成一個oneliner:

    time = d3.time.format("%H:%M:%S")(new Date(new Date('01-01-2016 00:00:00').getTime() + (y * 1000)));

現在,您可以將此oneliner放入Y軸和返回timeformat函數中:

var chart = c3.generate({
    data : {
        x : 'x',
        columns : [
            ['x', '2010-01-01', '2011-01-01', '2012-01-01', '2013-01-01', '2014-01-01', '2015-01-01'],
            ['sample', 30, 200, 100, 400, 150, 250]
        ]
    },
    axis : {
        x : {
            type: 'timeseries'
        },
        y : {
            tick : {
                format : function (y) {
                    return d3.time.format("%H:%M:%S")(new Date(new Date('01-01-2016 00:00:00').getTime() + (y * 1000)));
                }
            }
        }
    }
});

請參閱此小提琴進行演示。


更多信息 :

要使用Firefox進行此項工作,您還需要設置:

Fri Jan 01 2016 00:00:00 GMT+0100 (CET)

代替

01-01-2016 00:00:00

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM