1つのセクションに1つのデータセットを使用して長方形を作成し、次に他のデータセットを使用してgグループを作成しているため、単一のデータセットを使用することをお勧めします...そのグループに画像を配置しています。
データセット内のデータごとに 1 つの g を使用することをお勧めします。そして、そのgに画像と長方形を追加します...人生は簡単です。このようなもの
var mygroups = svg.selectAll("g")
.data(piedata)
.enter().append("g");
mygroups
.append("rect")
.attr("width", x.rangeBand())
.attr("y", function (d) {
return y(d.y1);
})
.attr("height", function (d) {
return y(d.y0) - y(d.y1);
})
.attr("class", "rectangle")
.style("fill", function (d) {
return color(d.label);
});
mygroups
.append("svg:image")
.attr("xlink:href",function(d) {return d.image})
.attr("height", function (d) {
return y(d.y0) - y(d.y1);
}).attr("width", x.rangeBand())
.attr("y", function (d) {
return y(d.y1);
});
ここでの作業コード: http://jsfiddle.net/cyril123/0xo38x8q/7/