省略尾随零/将 sigfigs 与 d3.format() 一起使用

Omitting trailing zeroes / using sigfigs with d3.format()

我通过 Plotly 间接使用 d3,需要传递轴上数字的格式字符串。

我很难使此 PR 中描述的效果发挥作用。 https://github.com/d3/d3-format/pull/57

PR 中描述的语法不在文档中https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format

基本上 - 有没有办法摆脱这些尾随零?我需要正确显示任意小的数字(例如 0.00123),所以简单的截断是行不通的——我需要一个真正的 sigfig 方法来省略尾随零

format = ".5g"
f = d3.format(format);
f(0.00123)           ==> 0.0012300 ☹
f(40)                ==> 40.000  ☹
f(5180.159999999996) ==> 5180.2 
f(999999)            ==> 1.0000e+6 

您的格式中缺少用于删除尾随零的标志 ('~')。这似乎有效...

format = ".5~g"
f = d3.format(format)
console.log(f(0.00123))
console.log(f(40))
console.log(f(5180.159999999996))
console.log(f(999999))
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>