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

如何在ggplotly悬停时显示未用于绘图的变量?

在ggplotly悬停时额外显示未参与绘图的变量

假设数据框内包含5个变量,使用ggplot绘图时仅用到其中3个,默认情况下用ggplotly转换后的散点图悬停时只会显示这3个变量。以鸢尾花数据集为例,现有绘图代码如下:

p1 <- 
  iris %>%
  ggplot(aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
  geom_point(alpha=0.5) 
ggplotly(p1)

需要实现悬停时同时显示Petal.Length的信息。

解决方案

通过在ggplot的aes()中定义自定义悬停文本,再配合ggplotly()的tooltip参数指定显示内容,就能实现需求。以下是两种常见写法:

写法1:按需添加单个额外变量

在aes()中新增text参数,单独指定要额外显示的Petal.Length,然后在ggplotly()里把text加入tooltip列表:

p1 <- 
  iris %>%
  ggplot(aes(x = Sepal.Length, y = Sepal.Width, color = Species,
             text = paste("花瓣长度:", Petal.Length))) +
  geom_point(alpha=0.5) 

ggplotly(p1, tooltip = c("x", "y", "color", "text"))

写法2:自定义完整悬停内容

如果想让悬停文本格式更规整,用sprintf格式化所有需要显示的内容,然后直接指定tooltip为text:

p1 <- 
  iris %>%
  ggplot(aes(x = Sepal.Length, y = Sepal.Width, color = Species,
             text = sprintf("萼片长度: %.2f\n萼片宽度: %.2f\n物种: %s\n花瓣长度: %.2f",
                           Sepal.Length, Sepal.Width, Species, Petal.Length))) +
  geom_point(alpha=0.5) 

ggplotly(p1, tooltip = "text")

两种写法都能让悬停时显示Petal.Length的信息,可根据格式需求选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 14:37:18