D3:为什么d3.format(“。2s”)格式化-0.5为-500m?

时间:2017-09-19 14:42:11

标签: javascript d3.js

我有d3比例。刻度值固定为[0,-0.5,-1]。勾号格式设置为“.2s”时,值-0.5显示为-500m。如果没有设置刻度格式,则会正确显示该值。

with fomat

without format

3 个答案:

答案 0 :(得分:1)

格式化功能在您的情况下正常工作。 format(".2s")它表示“带有两位有效数字的SI前缀” - 来自docs。当您可以选择格式化功能时,有一个很棒的演示页面 - http://bl.ocks.org/zanarmstrong/05c1e95bf7aa16c4768e

答案 1 :(得分:1)

根据https://github.com/d3/d3-format的文档,您选择的格式定义为:

  

d3.format(".2s")(42e6); // SI-prefix with two significant digits, "42M"

Wikipedia表示国际单位制的偏好:

  

通常优选对应于1000的整数幂的前缀。因此100米优于1小时(百米)或10坝(十分米)......

因此,.5你所选择的格式为500米,这是该格式的首选显示。

答案 2 :(得分:1)

小写&#34; m&#34;是(\b(?:(?:A(?:b(?:[679+]|sus)?|m[67]?|[689]|maj7|dim|\+|sus)?)|(?:B(?:b(?:[679+]|sus|m[67]?|maj7|dim)?|m[67]?|[679+]|maj7|dim|sus)?)|(?:C(?:[679+]|m[67]?|maj7|dim|sus|\#(?:m[67]?|dim)?)?)|(?:D(?:b(?:[679+]|maj7|sus)?|[679]|m[67]?|maj7|dim|\+|sus)?)|(?:E(?:b(?:[679+]|sus|m[67]?|maj7|dim)?|m[67]?|[679+]|maj7|dim|sus)?)|(?:F(?:[679+]|m[67]?|maj7|dim|sus|\#(?:[79]|m[67]|dim)?)?)|(?:G(?:b(?:maj7|sus|[6+])?|[679+]|m[67]?|maj7|dim|sus|\#(?:m[67]?|dim))?))(?=\s|$)) <a href="example.com/$1">$1</a>

&#13;
&#13;
milli
&#13;
&#13;
&#13;