嗯,我从 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 对齐,稍后我会看到,我想正确设置它的高度)
非常感谢! Y saludos desde Chile :)
最佳答案
问题是您的输入和输出范围是镜像的——也就是说,最大的输入值映射到最小的输出值。这很好,但是在计算 y
和 height
属性时需要将其考虑在内。本质上,您将两者的计算颠倒了。
固定 fiddle here .我还通过将边距和条形宽度的一半添加到计算出的 x 位置来固定 x 轴。哦,您在进行计算时不需要 parseInt()
,只有在您真正想要从字符串中解析整数时才需要。
关于d3.js - D3 的秤无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14612895/