【发布时间】:2019-11-01 22:06:33
【问题描述】:
我在条形图中添加了两个图例,但我不知道为什么会出现额外的图例。我不知道我的代码的哪一部分是错误的,因为我在我的代码中只定义了两个图例。
var color_hash = { 0 : ["Male", "blue"],
1 : ["Female", "pink"]}
var legend = svg.append("g")
.attr("class", "legend")
.attr("x", width - 65)
.attr("y", 25)
.attr("height", 100)
.attr("width", 100);
legend.selectAll('g').data(data)
.enter()
.append('g')
.each(function(d, i) {
var g = d3.select(this);
g.append("rect")
.attr("x", width - 65)
.attr("y", i*25)
.attr("width", 10)
.attr("height", 10)
.style("fill", color_hash[String(i)][1]);
g.append("text")
.attr("x", width - 50)
.attr("y", i * 25 + 8)
.attr("height", 30)
.attr("width", 100)
.style("fill", color_hash[String(i)[1]])
.text(color_hash[String(i)][0]);
});
黑色矩形是多余的:
【问题讨论】:
-
尝试检查 HTML 以查看额外元素的结构。这可能有线索?另一个想法是 console.log() 正在创建图例时的数据...是否存在男性或女性以外的数据值(例如 null?)?
-
@devlincarnate 传说来自 color_hash 对吧?那里只有女性和男性
-
data数组中有多少项?
标签: javascript d3.js visualization