使用 d3 对数刻度而不是线性刻度
Posted
技术标签:
【中文标题】使用 d3 对数刻度而不是线性刻度【英文标题】:Use d3 log scale instead of linear scale 【发布时间】:2013-02-16 07:16:12 【问题描述】:我正在尝试根据http://mbostock.github.com/d3/talk/20111116/bar-hierarchy.html 制作图表,唯一的区别是我想对 x 轴使用对数刻度。
这是我的小提琴:http://jsfiddle.net/JhDVC/5/
如您所见,x 轴在第 4 行定义:
x = d3.scale.linear().range([0, w]),
如果我改变它
x = d3.scale.log().range([0, w]),
然后它不起作用(什么都没有渲染),抛出这些错误消息:
Error: Invalid value for <rect> attribute
更改域设置
x.domain([0, root.value]).nice();
到
x.domain([1, root.value]).nice();
向我显示 z 轴(名称),但仍然没有条形或值。
【问题讨论】:
【参考方案1】:还有一些其他地方设置了规模的域。您还需要更新这些内容。
工作 jsfiddle here.
这里有一些代码可以让我发布这个:
x.domain([1, root.value]).nice();
【讨论】:
【参考方案2】:您的范围包括零 - log(0) 未定义。
【讨论】:
... 只是尝试将线性轴刻度切换为对数时很容易忘记??以上是关于使用 d3 对数刻度而不是线性刻度的主要内容,如果未能解决你的问题,请参考以下文章