D3.js 省略尾随零/使用带有d3.format()的SIGIFIGS

D3.js 省略尾随零/使用带有d3.format()的SIGIFIGS,d3.js,plotly.js,D3.js,Plotly.js,我通过Plotly间接使用d3,需要传递轴上数字的格式字符串 我很难让这个公关中描述的效果起作用 PR中描述的语法不在文档中 基本上-有没有办法摆脱这些尾随的零?我需要正确地显示任意小的数字(例如0.00123),所以简单的截断不起作用-我需要一个真正的sigfig方法,它可以省略尾随的零 format = ".5g" f = d3.format(format); f(0.00123) ==> 0.0012300 ☹ f(40) ==>

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

我很难让这个公关中描述的效果起作用

PR中描述的语法不在文档中

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

format = ".5g"
f = d3.format(format);
f(0.00123)           ==> 0.0012300 ☹
f(40)                ==> 40.000  ☹
f(5180.159999999996) ==> 5180.2 You are missing the flag ('~') in your format to remove the trailing zeroes. This seems to work...

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))
format=“.5g”
f=d3.格式(格式);
f(0.00123)=>0.0012300☹
f(40)==>40.000☹
f(5180.159999996)=>5180.2您的格式中缺少用于删除尾随零的标志(“~”)。这似乎有效

format=“.5~g”
f=d3.格式(格式)
控制台日志(f(0.00123))
控制台日志(f(40))
控制台日志(f(5180.159999996))
console.log(f(999999))

模块d3格式v1.3.0引入了修剪不重要零的
~
选项,该版本包含在v5.0.0包中,因此是v5+解决方案。另一方面,Plotly的最新版本仍然使用D3 v3.5.12,这就是为什么此解决方案不适用于OP的问题。谢谢您的回答@altocumulus这是我丢失的部分,谢谢你澄清了这一点。因此,我想Plotly目前不可能做到这一点。Plotly是我的外卖(至少不是格式化迷你语言字符串)。在某些情况下,实际上有办法注入/使用D3其他版本的格式化程序。您能否更具体地说明您希望在何处以及如何使用格式化程序,即我们讨论的是Plotly的哪个布局选项?@altocumulus这是专门针对Axis的tickformat属性的