使用d3对数刻度而不是线性刻度

时间:2013-03-01 17:38:23

标签: javascript d3.js hierarchy bar-chart

我正在尝试基于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 width="NaN" 

更改域名设置
x.domain([0, root.value]).nice();

x.domain([1, root.value]).nice();

显示z轴(名称),但仍然没有条形或值。

2 个答案:

答案 0 :(得分:9)

还有一些其他地方可以设置比例域。你也需要更新它们。

工作jsfiddle here

这里有一些代码,以便我可以发布这个:

x.domain([1, root.value]).nice();

答案 1 :(得分:3)

您的范围包括零 - 日志(0)未定义。