Javascript 使用d3对数刻度代替线性刻度

Javascript 使用d3对数刻度代替线性刻度,javascript,d3.js,hierarchy,bar-chart,Javascript,D3.js,Hierarchy,Bar Chart,我试着做一个基于的图表,唯一的区别是我想用对数刻度表示x轴 这是我的小提琴: 如您所见,x轴在第4行定义: x = d3.scale.linear().range([0, w]), 如果我把它换成 x = d3.scale.log().range([0, w]), 然后它就不工作了(什么也不渲染),抛出以下错误消息: Error: Invalid value for <rect> attribute width="NaN" 到 向我显示z轴(名称),但仍然没有条形图或值。还有

我试着做一个基于的图表,唯一的区别是我想用对数刻度表示x轴

这是我的小提琴:

如您所见,x轴在第4行定义:

x = d3.scale.linear().range([0, w]),
如果我把它换成

x = d3.scale.log().range([0, w]),
然后它就不工作了(什么也不渲染),抛出以下错误消息:

Error: Invalid value for <rect> attribute width="NaN" 


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

还有一些其他地方设置了比例域。你也需要更新这些

在中间工作

这里有一些代码,让我可以发布以下内容:

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

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

…在尝试将线性轴比例切换为对数时很容易忘记
x.domain([1, root.value]).nice();
x.domain([1, root.value]).nice();