Shiny中renderPlotly加载ggplot图表时如何修改Plotly悬浮提示内容
解决方案
针对ggplot转plotly的悬浮提示定制需求,以下是两种可直接落地的实现方案:
方案1:自定义悬浮文本(改动最小,灵活性最高)
仅需要修改renderPlotly内的逻辑,在geom的映射中自定义需要展示的提示内容即可:
server <- function(input, output) { output$test <- renderPlotly({ p <- ggplot(A, aes(x = Year, y = count, fill = Size)) + geom_col(aes(text = paste0( "Size: ", Size, "<br>", "Count: ", count ))) # 指定仅展示自定义的text字段作为悬浮提示 ggplotly(p, tooltip = "text") }) }
说明:
- 直接在
text映射中组装你需要的悬浮内容,已经默认去掉了Year信息,同时把count的展示名称改为大写的Count tooltip = "text"参数会屏蔽plotly默认生成的其他映射提示,仅展示你自定义的内容
方案2:修改悬浮模板(适合保留默认框架的场景)
如果不想完全重写提示内容,也可以通过hovertemplate调整默认模板:
server <- function(input, output) { output$test <- renderPlotly({ p <- ggplot(A, aes(x = Year, y = count, fill = Size)) + geom_col() ggplotly(p) %>% style(hovertemplate = "Size: %{fullData.name}<br>Count: %{y}<extra></extra>") }) }
说明:
%{fullData.name}对应分组的Size字段值,%{y}对应y轴的count数值- 末尾的
<extra></extra>用于隐藏plotly默认追加的trace标识,避免出现多余内容
两种方案运行后均可以满足需求:鼠标悬浮时不再展示Year信息,原count字段的展示名称替换为Count。
内容的提问来源于stack exchange,提问作者Raul
相关产品推荐
相关产品推荐

