Dictionary 无法在d3.geo地图中显示csv数据
我试图在我的地图中显示csv数据。我从json数据创建的地图。但现在它不显示任何csv数据,只显示json数据 tootip.html(“地区:”+“\n”+d.id+d.Family\u Feud\m) 这里d.id的“id”来自json文件,d.Family_Feud_m的“Family_Feud_m”来自csv文件 以下是我的完整js代码:Dictionary 无法在d3.geo地图中显示csv数据,dictionary,d3.js,topojson,Dictionary,D3.js,Topojson,我试图在我的地图中显示csv数据。我从json数据创建的地图。但现在它不显示任何csv数据,只显示json数据 tootip.html(“地区:”+“\n”+d.id+d.Family\u Feud\m) 这里d.id的“id”来自json文件,d.Family_Feud_m的“Family_Feud_m”来自csv文件 以下是我的完整js代码: var Districts=[]; var bardata = []; var width = 500, height = 700; va
var Districts=[];
var bardata = [];
var width = 500,
height = 700;
var scal = 5000;
var tootip = d3.select('body')
.append('div')
.style('position','absolute')
.style('padding','0 10px')
.style('background','white')
.style('opacity',0)
var projection = d3.geo.mercator()
.scale(scal)
.translate([-76.5/50.0 * scal, scal/2-scal/55]);
var path = d3.geo.path()
.projection(projection);
var svg = d3.select(".viewer")
.append("svg")
.attr("width", width)
.attr("height", height);
function redrawMap()
{
svg.selectAll(".subunit")
.style('fill',function(d){
amount = Districts[d.id];
if(amount == 0 || amount== undefined)
return 'rgba(0,0,0,0.5)';
return 'rgba(43,120,200,'+amount*1.0/10.0+')';
});
}
d3.csv('./data/resultsuicide.csv',function(data){
console.log(data)
for(key in data) {
bardata.push(data[key].value)
}
d3.json("./data/bd.json", function(error, bd) {
svg.selectAll(".subunit")
.data(topojson.feature(bd, bd.objects.subunits).features)
.enter().append("path")
.attr("class", function(d) { return "subunit " + d.id; })
.attr("d", path)
.on('mouseover',function(d){
tootip.transition()
.style('opacity',.9)
tootip.html(" District :"+"\n" +d.id +d.Family_Feud_m)
.style('left',(d3.event.pageX-35)+'px')
.style('top',(d3.event.pageY-30)+'px')
tempcolor = this.style.fill;
d3.select(this)
.style('opacity',.5)
.style('fill','green')
})
.on('mouseout',function(d){
d3.select(this)
.style('opacity',1)
.style('fill',tempcolor)
})
redrawMap();
});
});
//提前感谢绑定到html元素的唯一数据来自.json数据。你从不将你的bardata绑定到“tootip”。由于要加载多个数据,我会选择Mike Bostock的
queue.js
这样的:queue().defer(d3.csv,./data/resultsuicide.csv')。defer(d3.json,“./data/bd.json”)。wait(myfunction)
以类似于forEach
循环的方式将您的csvFamily\u Feud\m
绑定到您的json
数据,然后您可以按照@ee2Dev的建议将数据传递到工具提示。