我想用不同的颜色绘制三个连续的方块(这是没有问题的,它在“缩放”变量中),并在每个大颜色下面放置可变数量的小方块(我做不到,“圆点”变量)。我究竟做错了什么?这是我的代码,要点https://gist.github.com/3013836:如何在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");
太棒了!你刚刚澄清了我的精神迷雾。我想我现在终于明白了 – nachocab