我们有一些数据D3中的工具提示如何动态获取数据?
University,Total,Females,Males,Year,Type
PortSaid,13817,6679,7138,2012,Public
PortSaid,14790,7527,7263,2013,Public
PortSaid,17295,8509,8786,2010,Public
6OctoberUniversity,12507,4297,8210,2012,Private
6OctoberUniversity,14608,5360,9248,2013,Private
我尝试创建饼图这样Block附有一个动态提示。 我创建了一个HTML元素手动
<p>
<strong>University is </strong>
<span id="UniversityName"></span>
</p>
<p><span id="NumberStudents"></span> Students</p>
和创建弧代码和工具提示
svg.selectAll("path")
.data(pie(data))
.enter().append("path")
.each(function(d) { d.outerRadius = outerRadius - 20; })
.attr("d", arc)
.on("mouseover", arcTween(outerRadius, 0))
.on("mouseout", arcTween(outerRadius - 20, 150))
.on("mouseover", function(d) {
var xPosition = 100;
var yPosition = 100;
d3.select("#tooltip")
.data(pie(data))
.style("left", xPosition + "px")
.style("top", yPosition + "px")
.select("#NumberStudents")
.text(function(d) { return d.value })
.select("#UniversityName")
.text(function(d) { return d.value });
//Show the tooltip
d3.select("#tooltip").classed("hidden", false);
})
.on("mouseout", function() {
//Hide the tooltip
d3.select("#tooltip").classed("hidden", true);
})
问题: 工具提示总是返回总计列的第一个值,即13817.它如何根据鼠标悬停弧动态显示正确的值?
编辑:在HTML模板提示代码片段&添加第二个数据点#UniversityName。
问题2 作为@minikomi指出的,正确的数据结合将导致与每个弧被获取正确地相关联的值。然而,似乎每条弧线都有一个附加的值,正确的标记为合计。 但是,这会在何处留下每行的其余数据,如女性,男性或年?我怎样才能将它们绑定到工具提示?
这将是简单的'd3.select(“#提示”)文本(d.value );',不是? –
关于您的编辑:请查看我的评论,我对编辑的回答和[文档](https://github.com/mbostock/d3/wiki/Pie-Layout#_pie)。这些文档非常全面,所以如果您尝试从块学习,最好阅读每行,并检查它在另一个选项卡中处理文档的方式。 – minikomi
@minikomi我无法将文档与JavaScript的数据模型相关联,它会让人感到困惑。使用控制台猜测/评估数据的任何给定点几乎是无用的(尽管在文档中推荐!)感谢您的帮助,我会给他们一个新的看法 –