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

lui*_*ati 12 javascript hierarchy bar-chart d3.js

我正在尝试基于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]),
Run Code Online (Sandbox Code Playgroud)

如果我改变它

x = d3.scale.log().range([0, w]),
Run Code Online (Sandbox Code Playgroud)

然后它不起作用(没有渲染),抛出这些错误消息:

Error: Invalid value for <rect> attribute width="NaN" 
Run Code Online (Sandbox Code Playgroud)

更改域设置

x.domain([0, root.value]).nice();
Run Code Online (Sandbox Code Playgroud)

x.domain([1, root.value]).nice();
Run Code Online (Sandbox Code Playgroud)

向我显示z轴(名称)但仍然没有条形或值.

Lar*_*off 9

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

在这里工作jsfiddle .

这里有一些代码,所以它允许我发布这个:

x.domain([1, root.value]).nice();
Run Code Online (Sandbox Code Playgroud)


btk*_*btk 6

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