Je veux dessiner trois carrés contigus avec des couleurs différentes (ce n'est pas un problème, c'est dans la variable "échelle") et mettre un nombre variable de petits carrés sous chaque grande couleur (que je ne peux pas faire, les "points" variable). Qu'est-ce que je fais mal? Ceci est mon code, et le https://gist.github.com/3013836 essentiel:comment imbriquer des sélections dans d3?
var data = [-1,0,1]
var rect_size = 25; //px
var x = d3.scale.ordinal().domain(d3.range(data.length)).rangeBands([0, rect_size*data.length]);
var color = d3.scale.linear().domain([-1.5, 0, 1.5]).range(["#278DD6","#ffffff","#d62728"]).clamp(false);
var svg = d3.select("body").append("svg")
.attr("width", 800)
.attr("height", 200)
scale = svg.selectAll("rect")
.data(data)
.enter().append("rect")
.attr("x", function(d,i) { return x(i); })
.attr("y",0)
.attr("width", rect_size)
.attr("height", rect_size)
.style("fill", function(d) { return color(d); });
dots = [[1,2,3],[1,2],[1,2,3,4]]
var y = d3.scale.ordinal().domain(d3.range(dots.length)).rangeBands([0, (rect_size/2)*dots.length]);
scale.selectAll("g")
.data(dots, function(d){return d;})
.enter().append("rect")
.attr("x", function(d,i) {return x(i);})
.attr("y", function(d,i) {return y(i);})
.attr("width", rect_size/2)
.attr("height", rect_size/2)
.style("fill", "black");
Génial! Vous venez de clarifier mon brouillard mental. Je pense que j'ai enfin compris – nachocab