R语言plotly包ggplotly函数如何修改弹窗标签并删除多余内容
ggplotly交互式折线图悬停冗余标签移除方法
使用R语言plotly包的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
相关产品推荐
相关产品推荐

