如何设置Plotly散点图标注仅在鼠标悬停时可见
解决方案
你当前使用add_annotations添加的是全局固定标注,默认会全部渲染在画布上,要实现仅悬停对应数据点时才显示标注,最简便的实现方式如下:
修改后代码
library(plotly) data <- mtcars[which(mtcars$am == 1 & mtcars$gear == 4),] # 将行名存入数据集方便调用 data$car_name <- rownames(data) fig <- plot_ly(data, x = ~wt, y = ~mpg, type = 'scatter', mode = 'markers', marker = list(size = 10), # 配置悬停时展示的文本 text = ~car_name, # 自定义悬停展示格式,这里保留了x、y数值和标注文本 hovertemplate = "车型: %{text}<br>重量: %{x} 吨/1000<br>油耗: %{y} 英里/加仑<extra></extra>") fig
配置说明
- 移除了原来的全局
add_annotations配置,避免固定标注一直显示 - 通过
text参数传入你需要展示的车型名称标注内容 hovertemplate可以自定义悬停弹窗的显示内容,<extra></extra>用来隐藏默认的trace名称,你可以根据自己的需求调整格式- 如果你需要保留原来带箭头的标注样式,仅在悬停时触发,可以给每个annotation设置
visible = FALSE属性,再通过Plotly的hover事件动态控制标注的显示状态,上述轻量方案已经可以满足绝大多数标注展示需求。
内容的提问来源于stack exchange,提问作者manu p
相关产品推荐
相关产品推荐

