以百万英镑显示Y轴值的最佳方式

时间:2017-08-09 15:01:52

标签: javascript d3.js

我有这种格式的数据:

[{"EndDate":"2012","Value":26473660},
 {"EndDate":"2013","Value":54296732},
 {"EndDate":"2014","Value":64063400},
 {"EndDate":"2015","Value":81812464},
 {"EndDate":"2016","Value":86899274}]

我成功地渲染了条形图。但是,Y轴值在刻度上下显示“000”。

以下是y轴的相关代码部分。

var y = d3.scale.linear()
        .range([height, 0]);

....

var yAxis = d3.svg.axis()
        .scale(y)
        .orient("left");

....

y.domain([0, d3.max(dataset, function(d) { return d.Value; })]);

....

        svg.append("g") //Y AXIS ENTER
        .attr("class", "y axis")
        .call(yAxis)
    .append("text")
        .attr("transform", "rotate(-90)")
        .attr("y", 6)
        .attr("dy", ".71em")
        .style("text-anchor", "end")
        .text("Value in £");

我在bostocks网站上查看了d3.ticks / d3.tickFormat函数,但没有关注实际发生的事情。基本上,我想显示一个简短的方法来显示百万:0M,10M,20M,30M ......这是一个简单的解决方案。

如果重复,请道歉。它可能似乎找不到适用于我的数据集风格的解决方案:/

先谢谢。