javascript - D3.js 点处的折线图工具提示

标签 javascript d3.js

我想将工具提示添加到 this图表。 我指的是thisthis示例

问题是它们在 SVG 中的线上没有唯一的点,它只有路径标签。

 svg.selectAll("dot")   
    .data(data)         
.enter().append("circle")                               
    .attr("r", 5)       
    .attr("cx", function(d) { return x(d.date); })       
    .attr("cy", function(d) { return y(d.close); })     
    .on("mouseover", function(d) {      
        div.transition()        
            .duration(200)      
            .style("opacity", .9);      
        div .html(formatTime(d.date) + "<br/>"  + d.close)  
            .style("left", (d3.event.pageX) + "px")     
            .style("top", (d3.event.pageY - 28) + "px");    
        })                  
    .on("mouseout", function(d) {       
        div.transition()        
            .duration(500)      
            .style("opacity", 0);   
    });

就像上面的代码选择 SVG 上的点一样,但我没有任何特定元素来绑定(bind)工具提示。

任何人都可以帮助我吗,因为我是 d3.js 的新手。

最佳答案

你应该为 y 取 d.value:

.attr("cy", function(d) { return y(d.value); })  

现在在鼠标悬停时附加新元素:

.on("mouseover", function(d) {      
        svg.append("text")
          .text(d.value)
          .attr('class', 'tooltip').style("font-size","10px")
          .attr("x", x(d.date))
          .attr("y", y(d.value))
          .attr('fill', 'red');
        })                  
    .on("mouseout", function(d) {       
        d3.selectAll('.tooltip').remove();
    });

关于javascript - D3.js 点处的折线图工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40992048/

相关文章:

javascript - 递归 promise 链末尾的链式操作

javascript - 如何求值的总和?

javascript - 如何避免访问 d3.js 中的属性

d3.js - 将 d3 zoom scaleExtent 设置为正值

javascript - 向 d3.js 折线图添加图例

javascript - D3 : Lag update on force layout links when dataset changes

javascript - 如何检查两个元素上的鼠标悬停?

javascript - 如何在 'mailto' body 中写入到当前页面的链接

javascript - 创建嵌套的 Javascript 对象

javascript - 焦点样式在 React 组件中无法正常工作?