请参考这个小提琴:http://jsfiddle.net/rdesai/5stce/40/
工具提示提取的数据不正确。我该如何解决?
代码的相关部分:
episode.selectAll("rect")
.data(function(d) { return d.ages; })
.enter().append("rect")
.attr("width", x.rangeBand() - 15)
.attr("y", function(d) { return y(d.y1); })
.attr("height", function(d) { return y(d.y0) - y(d.y1); })
.style("fill", function(d) { return color(d.name); })
.on("mouseover", function(d) {
tooltip.transition().duration(200).style("opacity", .9);
tooltip.html("YES: " + Number(d.y1*100) + "%<br/>NO: " + Number(d.y0*100) + "%")
.style("left", (d3.event.pageX) + "px")
.style("top", (d3.event.pageY - 28) + "px");
})
.on("mouseout", function(d) {
tooltip.transition().duration(500).style("opacity", 0);
});
答案 0 :(得分:1)
我尝试过,但无法使用您的代码。所以如果你喜欢使用它,我会用另一种方法来查找百分比。
var x=Number($(this).attr("height"))/45;
if($(this).css("fill")=="rgb(255, 51, 50)"){
tooltip.html("YES: " + Number((10-x)*10) + "%<br/>NO: " + Number(x*10) + "%")
}
else
{
tooltip.html("YES: " + Number((x)*10) + "%<br/>NO: " + Number(10-x)*10 + "%")
}