d3.js更改价格和日期的格式

时间:2014-02-01 11:17:58

标签: d3.js crossfilter dc.js

我想在d3.js中更改日期和数字格式。

我使用下面的代码来生成图表。

collectionRate.width(940)
    .height(250)
    .dimension(collectionRateValue)
    .group(collectionRateValueGroup_payment, "Payment")
    //.stack(collectionRateValueGroup_adj, "count")
    .stack(collectionRateValueGroup_ar_bal, "charge amt")
    .title(function(d) {
        return  ": ";
    })
    .renderTitle(true)
    .transitionDuration(1500)
    .margins({
        top: 10, 
        right: 50, 
        bottom: 30, 
        left: 70
    })
    .centerBar(true)
    .gap(10)
    .xAxisPadding(500)
    .xUnits(d3.time.months)
    .label(function(d){
        return "d.key";
    })
    .round(d3.time.month.round)
    .x(d3.time.scale().domain([new Date(2012, 11, 1), new Date(2013, 12, 31)]))
    //.x(d3.scale.linear().domain([-1, 10000]))
    .legend(dc.legend().x(750).y(0))
    .elasticY(true)


    dc.renderAll();
    dc.redrawAll();
    d3.select("#dc-pie-graph > svg > g").attr("transform", "translate(100,100)"); 

代码结果如下。

d3.js

现在,我想要什么 我想将Y轴值格式500,000更改为50K,与其他格式相同。 目前,X轴值是1月,2月....我想将其更改为1月13日。

我试过但是我无法成功改变格式。

1 个答案:

答案 0 :(得分:1)

您可以使用.tickFormat() function执行此操作,例如对于x轴:

.xAxis().tickFormat(d3.time.format("%b-%d"));

您目前正在四舍五入到整个月(.round(d3.time.month.round)),您可能希望将其删除。对于y轴,它看起来像这样:

.yAxis().tickFormat(d3.format(",.0s"));