如何在Python/Streamlit的Plotly图表中实现图例及轴标签tooltip功能?
在Streamlit的Plotly图表中给图例颜色块和轴标签加Tooltip
一、图例颜色块的Tooltip实现
Plotly原生支持给图例项配置悬停文本,操作步骤如下:
- 为每个图表trace设置
hovertext,定义悬停时显示的自定义内容 - 在布局配置中开启图例的悬停信息展示
示例代码:
import plotly.express as px import streamlit as st # 加载示例数据 df = px.data.iris() # 创建基础散点图 fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species") # 给每个图例项配置悬停文本 for trace in fig.data: trace.hovertext = f"{trace.name}:该类别共包含{len(df[df['species'] == trace.name])}个样本" trace.hoverinfo = "text" # 指定悬停时仅显示自定义文本 # 开启图例的悬停功能 fig.update_layout( legend=dict( hovermode="x unified", hoverinfo="text" ) ) # 在Streamlit中渲染图表 st.plotly_chart(fig, use_container_width=True)
二、轴标签的Tooltip实现
Plotly的轴标题支持直接配置hovertext参数,无需复杂操作,代码示例:
# 为X轴标签添加Tooltip fig.update_xaxes( title=dict( text="花萼宽度", hovertext="单位:厘米,用于记录鸢尾花花萼的横向尺寸" ) ) # 为Y轴标签添加Tooltip fig.update_yaxes( title=dict( text="花萼长度", hovertext="单位:厘米,用于记录鸢尾花花萼的纵向尺寸" ) )
上述配置在Streamlit中直接生效,st.plotly_chart()会完整保留Plotly图表的所有交互特性,不用担心兼容性问题。
内容的提问来源于stack exchange,提问作者oblix
相关产品推荐
相关产品推荐

