将工具提示添加到d3.js分层条形图

时间:2018-06-14 12:01:10

标签: javascript d3.js tooltip mouseover

我正在尝试使用鼠标悬停层次结构条形图添加工具提示,因为它是由Mike Bostock在这里创建的(https://bl.ocks.org/mbostock/1283663)。我无法通过传统方式添加工具提示,因为代码有点不同。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

你可以这样做:

  bar.append("text")
      .attr("class", "moreText")
      .attr("x", function(d) { return x(d.value) + 20; })
      .attr("y", barHeight / 2)
      .attr("dy", ".35em")
      .attr("fill", "none")
      .text(function(d) { return d.value; })
bar函数中

并添加此项以获得悬停效果

  bar.on("mouseover", function() {
        d3.select(this).select(".moreText").attr("fill", "#333")
          .attr("x", function(d) { return x(d.value) + 15; })
      })
      .on("mouseout", function() {
        d3.select(this).select(".moreText").attr("fill", "none")
      })

在同一个函数中,在这里添加.attr("x", function(d) { return x(d.value) + 15; })以确保我们在转换之前和之后都获得正确矩形的正确坐标,并按类引用文本:

d3.select(this).select(".moreText")

这是一个有效的plunker