Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 轴上刻度值的格式_Javascript_D3.js - Fatal编程技术网

Javascript 轴上刻度值的格式

Javascript 轴上刻度值的格式,javascript,d3.js,Javascript,D3.js,我有一个图表,我可以选择什么东西在两个轴上。它可以达到每周公里数,最大值略高于70亿。对于致命事故,最大值略大于10。 当我调用axis时,我使用以下命令: .call(axeX.tickFormat(d3.format(".0s"))) 如果我不这样做的话,每周的公里数就太长了,而且有点难看。但是现在,轴上的数字是错误的,正如你在这张图片上看到的: 工作示例如下: 我应该使用什么格式,以便大的数字采用合适的格式(如7G而不是70亿),而小的数字保持“正常”格式(如10而不是10.0000)

我有一个图表,我可以选择什么东西在两个轴上。它可以达到每周公里数,最大值略高于70亿。对于致命事故,最大值略大于10。 当我调用axis时,我使用以下命令:

.call(axeX.tickFormat(d3.format(".0s")))
如果我不这样做的话,每周的公里数就太长了,而且有点难看。但是现在,轴上的数字是错误的,正如你在这张图片上看到的:

工作示例如下:

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

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

.call(axeX.tickFormat(function(number) {
    var specifier = number > 999 ? d3.format(".0s") : d3.format("");
    return specifier(number);
}))
此代码返回11的
11
,返回1000的
1k

当您可以使用各种格式说明符并选择适合您的需要时,此代码非常有用。但没有通用的说明符。什么数字被认为是小的?这是主观的。您可以根据条件应用适当的格式说明符。对于您的情况:

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

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

感谢演示页面!我试过你的密码,但我明白了。我不明白的是,如果我把随机的东西放在
d3.format()
中,它就不工作了,所以浏览器知道
(“.0s”)
是一种真正的格式。“但是输出的结果没有真正意义。”@Arnaud Stephan哦,我的床。我更新了答案。您应该将当前号码传递给说明符。感谢演示页面!我试过你的密码,但我明白了。我不明白的是,如果我把随机的东西放在
d3.format()
中,它就不工作了,所以浏览器知道
(“.0s”)
是一种真正的格式。“但是输出的结果没有真正意义。”@Arnaud Stephan哦,我的床。我更新了答案。您应该将当前数字传递给说明符。