私はd3にかなり慣れていません。私はこれを持っていて、それは動作します:
<script type="text/javascript">
var w = 620;
var h = 30;
var father = [ true, true, false, false, false ];
//Create SVG element
var svg = d3.select("#parentsmed")
.append("svg")
.attr("height", h)
.attr("width", w);
var fatherrects = svg.selectAll("rect")
.data(father)
.enter()
.append("rect");
fatherrects.attr("x", function(d, i) {
return (i * 31) + 93;
})
.attr("width", 30)
.attr("height",30)
.attr("fill", function(d, i) {
if(father[i] == true) {
return "#89CFF0";
} else {
return "#efefef";
}
});
</script>
私がやりたいことは、別の配列変数またはネストされた配列のいずれかを持ち、「母」の値も描画することです...次のようなもの:
<script type="text/javascript">
var w = 620;
var h = 30;
var father = [ true, true, false, false, false ];
var mother = [ false, true, false, false, true ];
//Create SVG element
var svg = d3.select("#parentsmed")
.append("svg")
.attr("height", h)
.attr("width", w);
var fatherrects = svg.selectAll("rect")
.data(father)
.enter()
.append("rect");
fatherrects.attr("x", function(d, i) {
return (i * 31) + 93;
})
.attr("width", 30)
.attr("height",30)
.attr("fill", function(d, i) {
if(father[i] == true) {
return "#89CFF0";
} else {
return "#efefef";
}
});
var motherrects = svg.selectAll("rect")
.data(mother)
.enter()
.append("rect");
motherrects.attr("x", function(d, i) {
return (i * 31) + 93;
})
.attr("y", 31)
.attr("width", 30)
.attr("height",30)
.attr("fill", function(d, i) {
if(mother[i] == true) {
return "#89CFF0";
} else {
return "#efefef";
}
});
</script>
これは を描画しますが、 は描画しfatherrects
ませんmotherrects
。var data = [father,mother];
示されているように、2 つの配列変数を使用するか、単一のネストされた配列を使用して、両方 (一番上の行に父の四角形、一番下の行に母の四角形) を描画するにはどうすればよいですか?