2
我想toottip添加到我的D3圖表,但我不能做so..Any幫助將不勝感激..TootTip問題與d3.js圖表
程序代碼:
var w = 300;
var h = 250;
var r = h/2;
var color = d3.scale.category20c();
var data = [{ "label": "1", "value": 64 },
{ "label": "2", "value": 1 },
{ "label": "3", "value": 19 },
{ "label": "4", "value": 17 },
{ "label": "5", "value": 1 }];
var tip = d3.tip()
.attr('class', 'd3-tip')
.offset([-10, 0])
.html(function (d) {
return "<strong>Frequency:</strong> <span style='color:red'>" + d.label + "</span>";
});
var vis = d3.select('#chart').append("svg:svg").data([data]).attr("width", w).attr("height", h).append("svg:g").attr("transform", "translate(" + r + "," + r + ")");
var pie = d3.layout.pie().value(function (d) { return d.value; });
var arc = d3.svg.arc().outerRadius(r);
var arcs = vis.selectAll("g.slice").data(pie).enter().append("svg:g").attr("class", "slice").on('mouseover', tip.show)
.on('mouseout', tip.hide);
arcs.append("svg:path")
.attr("fill", function (d, i) {
return color(i);
})
.attr("d", function (d) {
console.log(arc(d));
return arc(d);
});
arcs.append("svg:text").attr("transform", function (d) {
d.innerRadius = 0;
d.outerRadius = r;
return "translate(" + arc.centroid(d) + ")";
}).attr("text-anchor", "middle").text(function (d, i) {
return data[i].label;
}
);
嘗試'。對( '鼠標懸停',函數(){tip.show()})。在( '鼠標移開',函數(){tip.hide()} );'。還有任何控制檯錯誤? – murli2308
是顯示無法讀取屬性「標籤」的未定義錯誤 – Arjun
是「返回」頻率:「+ d.label +」「;'這條線?你可以發佈一個小提琴嗎? – murli2308