D3.js:tickmat-如何在不乘以100的情况下添加%符号?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (38)

我的数据有百分比,例如,[10.1, 3.2, 5.4]

d3.format("0f")会给我[10, 3, 5]

d3.format("0%")会给我[1010%, 320%, 540%](乘以100)

我怎么才能[10%, 3%, 5%]?

代码如下:

var formatPercent = d3.format("0f");

var min = 0; 
var max = d3.max(data, function(d) { return + d[5]; });
max = Math.round(max * 1.2); // pad it

//define the x-axis
var xAxis = d3.svg.axis()
                .scale(x)
                .orient('top')
                .ticks(6)
                .tickFormat(formatPercent);

数据就是这样的:

{
    "Geography": [
    ["Midwest", 234017797, 498, 8.2, 9.0, 11.3],
    ["Northeast", 265972035, 566, 8.9, 12.1, 13.1],
    ["South", 246235593, 524, 8.1, 8.3, 10.8],
    ["West", 362774577, 772, 9.4,9.9, 11.7]
    ]
}

每一行的最后三个数字,是我用来绘制范围的百分比值。我想要x轴格式化为整数+%格式,基于数据中的高值和低值。

提问于
用户回答回答于

D3 v4(使用ES6):

// Can also be axisTop, axisRight, or axisBottom
d3.axisLeft()
    .tickFormat(d => d + "%")

D3 v3的原始答案:

您可以创建自己的格式:

d3.svg.axis()
    .tickFormat(function(d) { return d + "%"; });

如果您想去掉小数位:

d3.svg.axis()
    .tickFormat(function(d) { return parseInt(d, 10) + "%"; });

所属标签

可能回答问题的人

  • HKC

    红客学院 · 创始人 (已认证)

    26 粉丝7 提问5 回答
  • Dingda

    Dingda · 站长 (已认证)

    4 粉丝0 提问3 回答
  • 西风

    renzha.net · 站长 (已认证)

    9 粉丝1 提问3 回答
  • 螃蟹居

    1 粉丝0 提问2 回答

扫码关注云+社区

领取腾讯云代金券