如何在NVD3.js中自定义Y值的格式,从秒到最小/秒

时间:2014-02-25 04:17:04

标签: d3.js nvd3.js

我正在尝试使用以下格式绘制数据图表:

[
 {'label':'0', 'seconds':1094},
 {'label':'1', 'seconds':1096},
 {'label':'2', 'seconds':1112},
 ...
]

,结果如下: enter image description here

看起来不错,问题是: 如何自定义显示Y值的格式?

enter image description here

更新 构建图表的代码

nv.addGraph(function() {
    var chart = nv.models.multiBarHorizontalChart()
        .x(function(d) { return d.label })
        .y(function(d) { return d.value })
        .margin({top: 30, right: 20, bottom: 50, left: 20})
        .showValues(true)           //Show bar value next to each bar.
        .tooltips(false)             //Show tooltips on hover.
        .transitionDuration(350)
        .showControls(true);        //Allow user to switch between "Grouped" and "Stacked" mode.

    chart.yAxis
        .tickFormat(d3.format(',.0f'));    

    d3.select('#chart1 svg')
        .datum(jsonData)
        .call(chart);

    nv.utils.windowResize(chart.update);

    return chart;
});

1 个答案:

答案 0 :(得分:3)

尝试这样的事情

 chart.yAxis.tickFormat(function(d) {
    // %M - minute as a decimal number [00,59].
    // %L - milliseconds as a decimal number [000, 999].
    return d3.time.format('%M%L')(new Date(d))
});

更新:

// Line Not Tested but valueFormat should do the trick
chart.valueFormat(d3.time.format('%M%L')); 

如果您需要更多时间格式化选项,请查看this

希望它有所帮助。