【发布时间】:2020-12-22 19:44:38
【问题描述】:
我正在使用 d3.js v3 构建一个点图直方图,并且我正在尝试根据我从 csv 文件中读取的一个变量(它是城市,其中有 10 个)对我的数据进行颜色编码。问题是当我在浏览器中运行时,每个点都是相同的颜色。
有人知道怎么回事吗?
这是我的代码的快照:
var data = d3.csv('happy.csv', function(data) {
data.forEach(function(d) {
d["index"] = d["index"];
d["name"] = d["name"];
d["city"] = d["city];
...
})
var colorScheme = d3.scale.ordinal()
.domain(data, (function(d) {
return d.city
}))
.range(["#FFADAF", "#FFC980", "#D9D9D9", "#9DACCB", "#95D1A5",
"#F586C6", "#BFDD81", "#F18489", "#80BCEC", "#FEFEA9"]);
...
var dots = groups.selectAll("circle")
.data(function(d) {
return d3.range(1, +d.index + 1)
})
.enter().append("circle")
.attr("class", "dot")
.attr("r", 7.5)
.attr("cy", function(d) {
return y(d)
})
.style("fill", function (d) { return colorScheme(d.city); } )
})
【问题讨论】:
-
如果您使用
.attr("fill", function(d) { console.log(d.city); return colorScheme(d.city); })登录城市,它会记录未定义的对吗? -
@AndrewReid 是的!
标签: javascript d3.js data-visualization