我們有一些數據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的數據模型相關聯,它會讓人感到困惑。使用控制檯猜測/評估數據的任何給定點幾乎是無用的(儘管在文檔中推薦!)感謝您的幫助,我會給他們一個新的看法 –