为了练习技能,我正在创建自己的D3图表中的传奇。我无法使svg彩色矩形与相应的文本垂直对齐。
这是我的代码和截图:
mk=[0,1,2,3,4]
var legend_dim=50
var legend_X=300
var colors=["#1f78b4","#33a02c","#e31a1c","#ff7f00","#6a3d9a","#b15928"]
d3.select("#chart").selectAll("rect")
.data(mk)
.enter()
.append("rect")
.style("fill", function(d,i) { return colors[i]}) .attr("x", function(d,i) { return 10*i})
.attr("x", legend_X)
.attr("y", function (d,i){return i*legend_dim})
.attr("width", legend_dim)
.attr("height", legend_dim)
d3.select("#chart").selectAll("text")
.data(mk)
.enter()
.append("text")
.text(function(d,i) { return i})
.attr("x", legend_X+20)
.attr("y", function (d,i){return (i)*legend_dim})
.attr("font-size","12px")
既然2的y属性相同,为什么它们会错位?我该如何对齐它们?顺便问一下,有没有设置文本框高度和宽度的方法?