如果您只想在将鼠标悬停在路径/矩形元素上时显示数据元素,您可以尝试在创建这些元素时直接将标题添加到这些元素上吗?
例如:
var data = [0, 1, 2, 3, 4, 5],
size = 300;
var canvas = d3.select("body")
.append("svg:svg")
.attr("width", size)
.attr("height", size);
var pixels = size / data.length;
canvas.selectAll("rect").data(data).enter().append("svg:rect")
.attr("fill", "red")
.attr("height", function(d){return d * pixels})
.attr("width", pixels/2)
.attr("x", function(d,i){return i * pixels})
.attr("y", 0)
.append("title") //Adding the title element to the rectangles.
.text(function(d){return d});
如果您将鼠标悬停在矩形上,此代码应创建五个矩形,其数据元素显示在工具提示中。
希望这会有所帮助。
根据评论编辑:
对于从下到上的图表,您可以像这样更改 y 属性:
.attr("y", function(d){return size - d * pixels})
此添加将导致条形图从图表的 maxHeight 和条形图大小之间的差值开始,从而有效地将自上而下的图表转变为自下而上的图表。