使用d3对数比例尺而非线性比例尺

18
我会尽力帮忙翻译。这篇文章是关于编程的,作者希望做一个基于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个回答

11

还有一些其他设置比例尺域名的地方。您也需要更新这些内容。

在此处查看工作jsfiddle here

这里是一些代码,以便让我发布这个:

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

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

1
当试图将线性轴刻度转换为对数轴刻度时,很容易忘记。 - eMPee584

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接