我正在使用美国人口普查 ACS API来提取美国所有县的数据。然后,我想生成一个基于这些值着色的县级等值线图。如果我有一个静态数据文件(带有区号的 CSV:值),我可以呈现数据。但是,来自 API 的数据返回为:
0: "B08101_025E"
1: "NAME"
2: "state"
3: "county"
...
0: "42"
1: "Autauga County, Alabama"
2: "01"
3: "001"
:value 中似乎需要数据,使得上面看起来像(忽略标题元素):
01001: 42
我想我对数据的格式和预期的输出应该是什么感到困惑。最后,我正在做的是:
var pad = d3.format("05d"),
quantize = d3.scale.quantile().domain([0, 15]).range(d3.range(9));
d3.json("us-counties.json", function (json) {
counties.selectAll("path")
.data(json.features)
.enter().append("svg:path")
.attr("class", function (d) {
return "q" + quantize(dataSet[pad(d.id)]) + "-9";
})
.attr("d", path)
.on("click", click)
.append("svg:title")
.text(function (d) {
return d.properties.name + ": " + dataSet[pad(d.id)] + "%";
});
});
这是取自这里。请注意,dataSet[pad(d.id)]
没有命中,因为数据不在我认为它需要的键/值对中。如何以预期的格式得到这个?我试过把它dataSet
变成一个二维数组:
0: "01001"
1: 42
这仍然没有达到预期的结果。