Javascript 使用D3连接数据并在地图中弹出

Javascript 使用D3连接数据并在地图中弹出,javascript,jquery,d3.js,Javascript,Jquery,D3.js,我正在尝试将数据连接到地图,并在鼠标悬停时弹出。我只使用数据集中的3-4行进行测试 这是: d3.select("body").selectAll("path").each(function(d,i){ state_id = d3.select(this.parentNode).attr("entity_id"); title = d3.select(this).attr("title"); }); 当鼠标悬停在各州或联邦领土上时,犯罪数据就会弹出 这是我在

我正在尝试将数据连接到地图,并在鼠标悬停时弹出。我只使用数据集中的3-4行进行测试

这是:

    d3.select("body").selectAll("path").each(function(d,i){
    state_id = d3.select(this.parentNode).attr("entity_id");
    title = d3.select(this).attr("title");
    }); 
当鼠标悬停在各州或联邦领土上时,犯罪数据就会弹出

这是我在json/js中收集的完整数据集

为了便于查找,我会将您的数据转换为
d3.map
,然后根据悬停元素的id提取数据:

var m = d3.map(data, function(d) { return d.STATEUTS.toUpperCase(); }); 
var el=d3.select("body").selectAll("path")
.on("mouseover", function(d) {  
    var id = d3.select(this).attr('id');
    if (m.has(id)){      
        var d = m.get(id);
        //Display of Data on mouse hover        
        div.transition().duration(100).style("opacity", .75);      
        div.html( "<bold><br/>"+ d.STATEUTS +"</bold><br/>"+"<br/>"
            +"Assault : "+ d.Assault +"<br/>"
            +"Cruelty : "+ d.Cruelty +"<br/>"
            +"Dowry Death : "+ d.Dowry +"<br/>"
            +"Dowry Act : "+ d.Prohibition +"<br/>"
            +"Immoral : "+ d.Immoral +"<br/>"
            +"Importation of girl : "+ d.Importation +"<br/>"
            +"Insult : "+ d.Insult +"<br/>"
            +"Kidnapping,Abduction : "+ d.Kidnapping +"<br/>"
            +"Rape : "+ d.Rape +"<br/>"
            +"Total : "+ d.Total +"<br/>"
        )
        .style("left",(d3.event.pageX-50) + "px")
        .style("top", (d3.event.pageY-132) + "px");  
    }
})
var m=d3.map(数据,函数(d){返回d.STATEUTS.toUpperCase();});
变量el=d3。选择(“主体”)。选择全部(“路径”)
.on(“鼠标悬停”,函数(d){
var id=d3.select(this.attr('id');
如果(m.has(id)){
var d=m.get(id);
//鼠标悬停时显示数据
div.transition().duration(100).style(“不透明度”,.75);
div.html(“
”+d.STATEUTS+”
“+”
“ +“攻击:“+d.攻击+”
” +“残忍:+d.残忍+”
” +“嫁妆死亡:”+d.嫁妆+“
” +《嫁妆法》:+d.禁止+“
” +“不道德:”+d.不道德+“
” +“输入女孩:+d.输入+”
” +“侮辱:”+d.侮辱+“
” +绑架,绑架:“+d.绑架+”
” +强奸:“+d.强奸+”
” +“总计:”+d.总计+“
” ) .style(“左”(d3.event.pageX-50)+“px”) .样式(“顶部”(d3.event.pageY-132)+“px”); } })

更新。

非常感谢您的帮助。我怎样才能为不同的州获得不同的颜色。@辛格,你想让弹出窗口为每个州提供不同的颜色吗?非常感谢你的帮助。最后一件事,我想在鼠标悬停到一个特定的状态图上获取数据并生成一个饼图,但我不知道如何从状态图中获取数据。你介意帮我做最后一件吗。。。因为我不知道如何在鼠标悬停状态下获取数据并生成饼图。。。。