2

我正在整理一个 D3 垂直条形图,无法调整条形的高度。当我barHeight从以下 javascript 调整变量时,当呈现栏的外观完全相同时。意思是如果我脱掉里面什么*50barHeight不会改变。我可能在这里忽略了一些非常简单的东西,但是如何调整高度?

  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();
4

2 回答 2

0

这是一个带有一些更正代码的工作示例:

还有一个很好的例子,说明为什么指向不包含代码的其他网站的链接是一个坏主意。Tributary.io 在 2019 年 12 月没有回应。

http://tributary.io/inlet/5767993 (您可以单击任何数字并使用滑块更改它以查看它对输出的影响)

我认为主要问题是比例因子需要同时应用于“y”属性和高度属性。

于 2013-06-12T18:53:40.597 回答
0

你是对的,我正在调整高度的偏移量,所以当高度像素实际上在增加时,它会按比例偏移并隐藏在 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 ;

 })
于 2013-06-12T18:58:18.080 回答