javascript - 轴上刻度值的格式

标签 javascript d3.js

我有一个图表,我可以在其中选择两个轴上的内容。它可以从每周公里开始,最大值略高于 70 亿。致命事故,最大值略高于 10。 当我调用我的轴时,我使用这个:

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

如果我不这样做,每周的公里数就会非常长,而且有点难看。但现在,轴上的数字是错误的,如下图所示:

enter image description here

工作示例在这里:https://crashdavions.github.io/

我应该使用什么格式,以便大数字采用合适的格式(例如 7G 而不是 70 亿),而小数字则保持“正常”格式(例如 10 而不是 10.0000)?

最佳答案

有有用的demo page当您可以使用各种格式说明符并选择适合您的需求时。但没有通用说明符。哪些数字被认为是小数字?这是主观的。您可以按条件应用适当的格式说明符。对于您的情况:

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

此代码对于 11 返回 11,对于 1000 返回 1k

关于javascript - 轴上刻度值的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46895777/

相关文章:

javascript - 如何使用 AngularJS 检查值是否在数组中

javascript - 为什么我的 JS 函数执行的是 onload 而不是 onchange?

d3.js - 带点沿路径插值的元素旋转 - 在带圆弧的路径上不可能吗?

javascript - 如何将 div 包裹在用户给定字符串中的每个字母周围

javascript - 在像 quizup 这样的多人游戏中,socket.io 房间在配对中是否有任何作用

javascript - Chrome 开发者工具 - 动态创建的元素

javascript - D3.js 图表 : Labels (<text> Tags) Not Showing On IE11

javascript - 如何防止一个元素 split 成两条路径

SVG 文本质量差?

audio - d3 selectAll 不是 Vue 和 AudioContext 的函数