svg - 如何在D3轴刻度中获取数字值而不是对数值?

标签 svg angularjs d3.js nvd3.js

我尝试了以下代码,

d3.scale.log().domain([1,4]).range([h, 0]);

在轴中,我在轴值中得到的值为 1e + 0、2e + 0、3e + 0、4e + 0 。但我需要对数值,例如10、100、1000、10000 ..etc...。

最佳答案

结合使用log.scaletickFormat和轴tickFormat函数。

例如。设置1-> 10000对数刻度:

var s = d3.scale.log().domain([1, 10000]).range([1000, 0])

然后,设置轴:
var axis = d3.svg.axis().scale(s).tickFormat(function (d) {
        return s.tickFormat(4,d3.format(",d"))(d)
})

例子

http://jsfiddle.net/2hvxc/

我们想要4个刻度线-每10的幂次方一个-并用逗号格式化为数字。

在此处了解有关格式化的更多信息:
https://github.com/mbostock/d3/wiki/Formatting

在此处了解更多关于对数刻度的信息:
https://github.com/mbostock/d3/wiki/Quantitative-Scales#wiki-log

和轴:
https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-tickSize

关于svg - 如何在D3轴刻度中获取数字值而不是对数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16211095/

相关文章:

javascript - 如何将变量值插入for循环数组

javascript - RESTLET - 客户端的 Angular.JS 文件上传

javascript - 如何简化此 switch 语句(Angular 应用程序)

html - 从左到右显示 SVG 动画

android - SVG 数据 URI 到位图

SVG - 调整以一定角度定位的矩形的大小

d3.js - 用于可视化和图表的 D3.js 与 zingChart 库的比较

d3.js - NVD3设置为默认展开

javascript - 在jsnetworkx中绘制平行边

javascript - 如何使用 innerHTML 为 IE 嵌入条件注释?