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/看看* Scales *// 统计栏

(忘记条的x-alignment,我稍后会看到,我想正确设置它的高度)

非常感谢!Y saludos desde 智利 :)

4

1 回答 1

1

问题是您的输入和输出范围是镜像的——也就是说,最大的输入值映射到最小的输出值。y这很好,但是在计算和height属性时需要将其考虑在内。本质上,您将两者的计算都颠倒了。

在这里固定小提琴。我还通过将边距和条形宽度的一半添加到计算的 x 位置来固定 x 轴。哦,你在计算时不需要parseInt(),只有当你真正想从字符串中解析一个整数时。

于 2013-01-30T20:36:43.610 回答