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

Plotly自定义悬停文本功能异常:填充区域未显示自定义内容

解决Plotly自定义悬停在填充区域不生效的问题

我太懂你这个困扰了——设置hoveron='points+fills'后,自定义悬停文本只在数据点上正常显示,填充区域却跳出默认的数值信息,这确实是Plotly的一个容易踩的小坑。问题根源在于:填充层对应的trace并不会自动复用你给数据点设置的自定义hovertext,得单独为填充trace配置悬停参数才行。

修改后的可运行示例代码

直接给你调整好的完整代码,复制就能测试:

library(plotly)

data.frame(
  AA=c(2,3,3,2,NA, 6,7,7,6,NA), 
  BB=c(2,2,3,2,NA, 6,6,7,6,NA), 
  CC=c(rep('abc', 5), rep('xyz', 5)), 
  LL=c(rep('A', 5), rep('B', 5))
) %>% 
  plot_ly() %>%
  add_polygons(
    x = ~AA, y = ~BB, color = ~LL,
    hoveron = 'points+fills',
    # 核心修改:给填充层单独指定悬停规则和文本
    hoverinfo = 'text',
    hovertext = ~paste("分组: ", LL, "<br>类别: ", CC),
    text = ~paste("分组: ", LL, "<br>类别: ", CC) # 兼容部分渲染场景的冗余配置
  ) %>%
  layout(showlegend = TRUE)

关键调整点说明

  • 如果你之前用的是add_scatter加fill参数,本质上填充区域属于该trace的一部分,同样需要给这个trace加上hoverinfo='text'和自定义hovertext
  • hoverinfo='text'是必须的:它会告诉Plotly放弃默认的数值展示,只使用你自定义的文本内容
  • 显式设置hovertext为你需要的字符串,确保点和填充区域的悬停内容完全统一

为啥之前的设置没效果?

当你开启hoveron='points+fills'时,Plotly会分开处理两种悬停事件:

  • 数据点的悬停信息来自你给点trace配置的hovertext
  • 填充区域的悬停信息默认会调用该trace的原始x/y数值,除非你专门给填充对应的trace指定自定义文本

这样调整后,不管悬停在数据点还是填充区域上,都能看到你想要的自定义内容啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:27:21