轴上刻度值的格式

时间:2017-10-23 18:05:27

标签: javascript d3.js

我有一个图表,我可以选择两轴上的内容。它可以从每周公里数,其中最大值超过70亿。致命事故,最大值超过10。 当我打电话给我的轴时,我用它:

.call(axeX.tickFormat(d3.format(".0s")))

如果我不知道,每周的公里数是多长的,而且有点难看。但是现在,轴上的数字是错误的,正如你在这张图片上看到的那样:

enter image description here

工作示例如下:https://crashdavions.github.io/

我应该使用什么格式,以便大数字采用合适的格式(例如7G而不是7亿),但是小数字仍保留在正常情况下#34;格式(如10而不是10.0000)?

1 个答案:

答案 0 :(得分:2)

当您可以使用各种格式说明符并选择满足您的需求时,有用demo page。但没有通用的说明符。什么数字被认为是小的?这是主观的。您可以根据条件应用适当的格式说明符。对于你的情况:

.call(axeX.tickFormat(function(number) {
    var specifier = number > 999 ? d3.format(".0s") : d3.format("");
    return specifier(number);
}))

此代码返回11表示11,但1k表示1000。