好吧,我从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 * 和 // Stats bars
(忘掉吧台的x-alignement,稍后我会看到,我想正确设置它的高度)
非常感谢! Y saludos desde智利:)
答案 0 :(得分:1)
问题是您的输入和输出范围是镜像的 - 也就是说,最大输入值映射到最小输出值。这很好,但在计算y
和height
属性时需要考虑它。基本上,你已经计算了两个逆转。
固定小提琴here。我还通过将您的边距和条宽的一半添加到计算的x位置来修复x轴。哦,你在进行计算时不需要parseInt()
,只有当你真的想从字符串中解析一个整数时。