Javascript 利用d3.queue()将CSV和TopoJSON连接在一起
我发现很少有d3文档介绍如何使用JSON文件映射和使用公共密钥连接CSV度量文件 如果可能的话,我想使用Javascript 利用d3.queue()将CSV和TopoJSON连接在一起,javascript,json,csv,d3.js,Javascript,Json,Csv,D3.js,我发现很少有d3文档介绍如何使用JSON文件映射和使用公共密钥连接CSV度量文件 如果可能的话,我想使用d3.queue()。到目前为止,我一直在使用d3.map().set,但我发现它用于单键、值对,并且似乎不能用于>1个值。如果我离开这里,请有人纠正我 我试图在bl.ock中找到一个双for循环。这里的创建者使用了两个JSON文件,我几乎没有机会根据自己的需要对其进行裁剪。下面是他的两个JSON文件的链接 要使用的连接键(我说SQL比JS好得多)是JSON中的countries.id,以
d3.queue()
。到目前为止,我一直在使用d3.map().set
,但我发现它用于单键、值对,并且似乎不能用于>1个值。如果我离开这里,请有人纠正我
我试图在bl.ock中找到一个双for
循环。这里的创建者使用了两个JSON文件,我几乎没有机会根据自己的需要对其进行裁剪。下面是他的两个JSON文件的链接
要使用的连接键(我说SQL比JS好得多)是JSON中的countries.id
,以及CSV中的country\u fips
值
CSV中的县FIP
被与其相关的指标压平是否有问题?上面链接的示例中的doublefor
循环使用JSON的层次结构
d3.queue()
.defer(d3.json, "https://d3js.org/us-10m.v1.json")
//.defer(d3.csv, "countymetrics_json.csv" , function(d) {metrics.set(d.county_fips, +d.actual_margin);})
.defer(d3.csv, "https://raw.githubusercontent.com/MatthewSnellOKC/mapping/master/merge/countymetrics_json.csv", function(d) {metrics.set(d.county_fips, +d.actual_margin);})
.await(ready);
function ready (error, us) {
if (error) throw error;
var counties = us.objects.counties.geometries;
}
我已经从使用
d3.queue()
和d3.map().set
转换,并且能够使用双for
循环将CSV连接到JSON。请参阅下面的工作代码
d3.json("https://d3js.org/us-10m.v1.json", function(error, us) {
if (error) throw error;
d3.csv("countymetrics_json.csv", function(error, csv) {
var counties = us.objects.counties.geometries;
csv.forEach(function(d, i) {
counties.forEach(function(e, j) {
if (d.county_fips == e.id) {
e.actual_margin = d.actual_margin;
e.state_code = d.state_code;
e.state_name = d.state_name;
e.county = d.county;
e.county_population = d.county_population;
e.business_population = d.business_population;
e.active_merchants = d.active_merchants;
e.actual_margin = d.actual_margin;
}
})
})
})
});