0
我想一個提示(不知道是否是可能的,雖然...)中插入一個餅圖,並結束了與下面的代碼中的圖表:D3插入提示
var tip = d3.tip()
.attr('class', 'd3-tip')
.offset([-10, 0])
.html(
function(d) { if (d.company == "A" || d.company == "B") {
return "Company: <span style='color:#ccff33'>" + d.company+ " </span>";
}
else {
var data = [60,40];
var r = 100;
var color = d3.scale.ordinal()
.range(["blue", "orangered"]);
var base = d3.select(this)
var svg = base.append("svg")
.attr("width", 500)
.attr("height", 500);
var group = svg.append("g")
.attr("transform", "translate(30, 30)");
var arc = d3.svg.arc()
.innerRadius(10)
.outerRadius(r);
var pie = d3.layout.pie()
.value(function (d) { return d;});
var arcs = group.selectAll(".arc")
.data(pie(data))
.enter()
.append("g")
.attr("class", "arc");
arcs.append("path")
.attr("d", arc)
.attr("fill", function (d) { return color(d.data); })
}
}
);
baseSvg.call(tip);
第一與文本聯繫工作正常,但應該畫餅圖的Else部分不返回任何內容,我已經掙扎了幾天。我認爲我的錯誤來自選擇部分,但無法弄清楚。 我需要在工具提示中彈出餅圖。
非常感謝您的幫助。
優秀!謝謝。另一個問題,如果我可以,工具提示顯示,如鼠標懸停鼠標按預期,但餅圖疊加起來。就像第一次有1個圖表一樣,那麼我第二次懸停我的鼠標時,有2個圖表,然後是3,依此類推...... – user3700389
每次渲染工具提示時,您都會追加新的svg和g元素。可能最簡單的方法就是在添加東西之前將其刪除開始處的工具提示空白 - >'base.html(null)' – mgraham
就像魅力一樣工作。 非常感謝 – user3700389