D3.Js热图图表未显示悬停文本/工具提示

时间:2019-04-05 07:15:03

标签: javascript d3.js tooltip

我已经从http://bl.ocks.org/tjdecke/5558084中提取了热图图表并进行了修改。我期望使用工具提示

cards.select("svg:title").text(function(d) {
    return "Tariff " + d.value;
});

完整的项目在这里:https://jsfiddle.net/8wtoqg6r/1/

enter image description here

如何获得一个悬停事件以在工具提示中显示关税编号(d.value)?

1 个答案:

答案 0 :(得分:0)

我现在根据示例https://github.com/Caged/d3-tip使用http://bl.ocks.org/Caged/6476579。相关代码看起来像这样

let tip = d3.tip()
  .attr('class', 'd3-tip')
  .offset([0, 0])
  .html(function(d) {
    return "Tarif " + d.value;
  });

  svg.call(tip);

let heatmapChart = function(data) {
  let cards = svg.selectAll(".hour")
    .data(data, function(d) {
      return d.day + ':' + d.hour;
    });

  cards.append("title");

  cards.enter().append("rect")
    .attr("x", function(d) {
      return (d.hour - 1) * gridSize;
    })
    .attr("y", function(d) {
      return (d.day - 1) * gridSize;
    })
    .attr("rx", 4)
    .attr("ry", 4)
    .attr("class", "hour bordered")
    .attr("width", gridSize)
    .attr("height", gridSize)
    .on('mouseover', tip.show)
    .on('mouseout', tip.hide)
    .style("fill", function(d) {
      return colors[d.value - 1];
    });

  cards.exit().remove();
};

heatmapChart(data);

在提琴中可以找到完整的解决方案:https://jsfiddle.net/8wtoqg6r/3/