我正在尝试将数据连接到地图并在鼠标悬停时弹出。我在数据集中只使用了3-4行进行测试..
http://jsfiddle.net/2emnt8m3/1/
这是:
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中收集的完整数据集 http://pastebin.com/mZ6zc5CB
答案 0 :(得分:2)
我将您的数据转换为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");
}
})
更新了fiddle。