在d3选择方法链接中,如何引用所选元素的值?

时间:2019-05-27 21:45:58

标签: d3.js

我有一个简单的水平条形图,我试图在每个水平条形图的左侧放置一个图像,以用作该条形图的标签。

在脚本的这一点上,条已经创建并显示。 horizontal bar chart

我采取了一个代码示例,将标签添加到条形图的右侧(包含在图像中),并尝试对其进行更新以将图像放置在左侧。

    bars.append("image")
        .attr("class", "bar_image")
        //y position of the image is halfway down the bar
        .attr("y", function(d){
            return y(d.Candidate) + y.rangeBand() / 2 + 4;
        })
        //x position to left of bar
        .attr("x", function(d) {
            return -10;
        })
        .attr('xlink:href', function(d){
            return "/static/images/yang.png";
        })

我在这里的理解是,我选择了每个“ bar”元素并附加了一个图像(这是我目前在放置时工作的所有图像)。

我将图像元素的y属性设置为每个y范围的中间范围。这就是右侧标签设置其y attr的方式。 x,现在我只是设置在栏的左侧。然后,将实际的href设置为图像。

我的问题现在与确定图像大小有关,我希望能够基于“条”元素的高度动态设置其高度/宽度。这些高度显然取决于有多少条(此图应按比例放大或缩小到任意数量的人)

chart with image added to bars

显然,定位并不理想,但是现在我很高兴能够根据图表中条形的高度来调整图像的高度/宽度属性。

在选择和链接所选择元素的属性的方法中是否有引用的方法?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

并不是我想要的,但是我可以设置

attr("height", x)

使用设置条形图高度属性的相同功能的图像元素

.attr("height", y.rangeBand())