D3的比例尺不正常工作

3

我刚开始学习D3,正在尝试创建垂直条形图。

我真的不知道发生了什么,但有些东西对我来说并不像预期的那样工作(也许是因为我在这方面是个新手)。

我正在使用线性比例尺,与轴配合得很好,但它正在错误地计算条形的高度,例如,较高的值没有显示出来(因为结果的值较低)。

我已经使用d3.max确定了范围。我真的不明白发生了什么。

var yScaleLeft = d3.scale.linear()
    .domain([0, d3.max(stats)])
    .range([realHeight, 0]);

.attr("height", function(d) {
    return yScaleLeft(d);
});

这里是代码:http://jsfiddle.net/aKhhb/ 看看比例和状态条
(先忘记状态条的x轴对齐,稍后再调整,我想先正确设置高度)
非常感谢!来自智利的问候 :)
1个回答

1
问题在于你的输入和输出范围是镜像的,也就是说,最大的输入值映射到最小的输出值。这没问题,但是在计算 yheight 属性时需要考虑它。实际上,你两个计算的方式都反了。
修复后的示例请看 这里。我还通过将边距和半个条形图宽度添加到计算出的 x 位置中来修复了 x 轴。哦,当进行计算时不需要使用 parseInt(),只有在你真正想从字符串中解析整数时才需要使用它。

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