var tooltip = d3.select("body")
.append("div")
.style("position", "absolute")
.style("background-color", "gainsboro")
.style("border", "1px solid black")
.style("padding", "20px")
.style("pointer-events", "none")
.style("font-size", "12px");
var data = d3.csvParse(d3.select("#csv").text());
var groups = d3.selectAll("g[id^='f3']");
groups.on("mousemove", function() {
var groupId = this.id
var thisData = data.filter(function(d) {
return d.location === groupId
});
tooltip.html("Name: " + thisData[0].name + " " + thisData[0].surname + "<br>Role: " + thisData[0].role)
.style("top", (d3.event.pageY - 2) + "px").style("left", (d3.event.pageX + 2) + "px")
.style("visibility", "visible");
}).on("mouseout", function() {
tooltip.style("visibility", "hidden");
});
pre {
display: none;
}
<script src="https://d3js.org/d3.v4.min.js"></script>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300" height="100%">
<g id="background">
<rect x="1.5" y="0.3" fill="#5A8CC9" width="298.7" height="300.4" />
</g>
<g id="f3s362c12">
<g>
<rect x="75.2" y="92.4" pointer-events="visible" fill="none" width="64.7" height="57.8" />
<polyline fill="none" stroke="#CDDDED" stroke-width="0.5" stroke-miterlimit="10" points="118.4,149.9 140.3,149.9 140.3,92.4
75.2,92.4 75.2,128.7 " />
</g>
<g>
<text transform="matrix(1 0 0 1 87.8719 144.8836)" fill="#010101" font-family="arial, sans-serif" font-size="13.4182">362.12</text>
</g>
</g>
<g id="f3s362c11">
<g>
<rect x="75.2" y="149.9" pointer-events="visible" fill="none" width="64.7" height="57.8" />
<polyline fill="none" stroke="#CDDDED" stroke-width="0.5" stroke-miterlimit="10" points="118.4,207.8 140.3,207.8 140.3,149.9
75.2,149.9 75.2,186.2 " />
</g>
<g>
<text transform="matrix(1 0 0 1 87.8719 201.6532)" fill="#010101" font-family="arial, sans-serif" font-size="13.4182">362.11</text>
</g>
</g>
<g id="f3s362c2">
<g>
<rect x="140.3" y="149.9" pointer-events="visible" fill="none" width="68.8" height="57.8" />
<polyline fill="none" stroke="#CDDDED" stroke-width="0.5" stroke-miterlimit="10" points="208.7,183.5 208.7,149.9 140.3,149.9
140.3,207.8 185.8,207.8 " />
</g>
<g>
<text transform="matrix(1 0 0 1 163.782 201.6532)" fill="#010101" font-family="arial, sans-serif" font-size="13.4182">362.2</text>
</g>
</g>
<g id="f3s362c1">
<g>
<rect x="140.3" y="92.4" pointer-events="visible" fill="none" width="68.8" height="57.8" />
<polyline fill="none" stroke="#CDDDED" stroke-width="0.5" stroke-miterlimit="10" points="208.7,126 208.7,92.4 140.3,92.4
140.3,149.9 185.8,149.9 " />
</g>
<g>
<text transform="matrix(1 0 0 1 163.782 144.8836)" fill="#010101" font-family="arial, sans-serif" font-size="13.4182">362.1</text>
</g>
</g>
</svg>
<pre id="csv">floor,location,name,surname,role,image
3,f3s362c12,David ,Byrne,Singer,img/davidAvatar.jpg
3,f3s362c11,Tina,Weymouth,Bassist,img/tinaAvatar.jpg
3,f3s362c2,Jerry,Harrison,Keyboards,img/jerryAvatar.jpg
3,f3s362c1,Chris,Frantz,Drums,img/chrisAvatar.jpg</pre>