我正在整理D3垂直条形图,无法调整条形高度。当我从以下javascript调整barHeight
变量时,渲染时条形看起来完全相同。这意味着如果我在*50
中取消barHeight
,则不会有任何改变。我可能会忽略一些非常简单的东西,但我该如何调整高度呢?
var bars = svg.selectAll("rect")
.data(data_votes);
bars.enter()
.append("rect")
// .transition()
// .duration(1000);
bars.attr("x", function(d, i) {
return i * (w / data_votes.length);
})
.attr("y", function(d){
return h-d;
})
// Less bars == more width
.attr("width", w / data_votes.length - barPadding)
.attr("height", function(d){
var barHeight = d*50;
return barHeight;
})
.attr("fill", "teal");
bars.exit().remove();
答案 0 :(得分:1)
这是一个包含一些更正代码的工作示例:
http://tributary.io/inlet/5767993 (您可以单击任何数字并使用滑块更改它以查看它对输出的影响)
我认为主要问题是需要将比例因子应用于“y”属性和height属性。
答案 1 :(得分:-1)
你是对的,我正在用高度调整偏移量,所以当高度像素实际上增加时,它会按比例偏移并隐藏在svg画布的边缘。
以下是我调整它的方式
.attr("y", function(d){
return h-(d*4);
})
// Less bars == more width
.attr("width", w / data_votes.length - barPadding)
.attr("height", function(d) {
return d * 4 ;
})