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

R语言plotly包ggplotly函数如何修改弹窗标签并删除多余内容

ggplotly交互式折线图悬停冗余标签移除方法

使用R语言plotly包的ggplotly函数绘制交互式折线图时,默认生成的鼠标悬停弹窗会包含多余的标签信息,可通过自定义悬停内容的方式删除冗余字段。

问题效果参考:
ggplotly弹窗标签示例图

解决方案

你可以通过在ggplot映射中自定义悬停文本,再在调用ggplotly时指定要显示的tooltip字段,实现仅保留需要的弹窗内容,修改后的完整代码如下:

library(tidyverse)
library(plotly)
mdate <- c(44197,44198,44199,44200,44201,44202,44203,44204,44205,44206,44207,44208,44209,44210,44211,44212,44213,44214,44215,44216,44217,44218,44219,44220,44197,44198,44199,44200,44201,44202,44203,44204,44205,44206,44207,44208,44209,44210,44211,44212,44213,44214,44215,44216,44217,44218,44219,44220)
myear <- c(2021,2021,2021,2021,2021,2021,2021,2021,2021,2021,2021,2021,2021,2021,2021,2021,2021,2021,2021,2021,2021,2021,2021,2021,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020)
amount <- c(45,2,2,87,93,32,31,42,84,93,24,13,12,48,39,33,88,78,15,6,51,55,32,93,14,16,11,84,47,87,40,45,57,76,24,91,11,96,44,82,99,17,75,59,22,89,61,93)

p <- data.frame(mdate,myear,amount) %>% 
  mutate(mdate = as.Date(mdate), # 修正原代码中变量名不一致的问题
         myear = as.factor(myear)) %>% 
  ggplot(aes(x = mdate, 
             y = amount, 
             color = myear,
             # 自定义悬停显示的文本,格式可自行调整
             text = paste0("日期: ", mdate, "\n",
                          "数值: ", amount, "\n",
                          "年份: ", myear)
             )) +
  geom_line() +
  theme_minimal()

# 指定tooltip仅显示自定义的text内容,不会带出多余冗余字段
ggplotly(p, tooltip = "text")

其他可选方案

如果你不想完全自定义文本,只想删除不需要的字段,也可以直接在tooltip参数中指定需要保留的默认字段:

# 仅保留x轴、y轴、颜色分组三个字段,其他冗余字段会自动隐藏
ggplotly(p, tooltip = c("x","y","colour"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:45:03