You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整ggplotly的悬浮提示?解决hover信息重复问题

解决ggplotly悬浮提示重复显示的问题

这是因为你同时使用了geom_col()和geom_text()两个图层,ggplotly会为每个图层生成独立的悬浮提示,最终导致内容重复出现。

下面是两种简单的解决办法:

办法一:让文本图层不生成悬浮提示

直接在geom_text()里添加tooltip = ""参数,屏蔽文本层的hover信息:

# 生成数据集
specie <- c(rep("sorgho" , 3) , rep("poacee" , 3) , rep("banana" , 3) , rep("triticum" , 3) )
condition <- rep(c("normal" , "stress" , "Nitrogen") , 4)
value <- abs(rnorm(12 , 0 , 15))
data <- data.frame(specie,condition,value)

library(tidyverse)
library(plotly)

plt <- data %>% 
  group_by(specie) %>%
  mutate(value = value / sum(value)) %>%
  ggplot(aes(fill=condition, y=value, x=specie)) + 
  geom_col(position="fill", width = 1, color = "white") +
  geom_text(aes(label = scales::percent(value, accuracy = 0.1)), 
            position = position_fill(vjust = 0.50),
            color = "white",
            tooltip = "") +  # 禁用文本层的悬浮提示
  scale_y_continuous(labels = scales::percent) +
  scale_fill_brewer(palette = "Set1")

ggplotly(plt)

办法二:指定ggplotly只显示需要的提示内容

调用ggplotly()时,用tooltip参数明确指定要展示的字段,过滤掉重复内容:

# 前面的绘图代码不变,最后执行:
ggplotly(plt, tooltip = c("x", "fill", "y"))

这样只会显示物种(specie)、处理条件(condition)和占比(value)的信息,不会重复。

内容的提问来源于stack exchange,提问作者Underwood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 16:18:18