如何在不修改数据集的情况下修改Plotly图表的悬停文本格式?
Plotly 自定义悬停内容格式解决方案
不用修改数据集,直接通过hovertemplate参数就能实现你要的悬停格式——hovermode只是控制悬停的显示模式,无法自定义内容格式,而hovertemplate才是自定义悬停内容的核心工具。
关键实现思路
- 日期格式化:用Plotly内置的日期格式语法
%b, %Y,生成「月份缩写, 年份」的样式 - Y轴百分比:在模板中直接给数值拼接
%符号,无需改动原始数据
代码示例
Plotly Express 版本
import plotly.express as px import pandas as pd # 模拟你的数据集(无需修改原数据,仅作示例) df = pd.DataFrame({ 'Date': pd.date_range('2022-11-16', periods=5), 'Rate': [80.8, 75.2, 82.5, 78.1, 81.3] }) fig = px.line(df, x='Date', y='Rate') # 自定义悬停模板 fig.update_traces(hovertemplate='Date: %{x|%b, %Y}<br>Rate: %{y} %<extra></extra>') # <extra></extra>用于隐藏默认的trace名称,避免多余内容 fig.show()
Graph Objects 版本
import plotly.graph_objects as go import pandas as pd df = pd.DataFrame({ 'Date': pd.date_range('2022-11-16', periods=5), 'Rate': [80.8, 75.2, 82.5, 78.1, 81.3] }) fig = go.Figure() fig.add_trace(go.Scatter( x=df['Date'], y=df['Rate'], hovertemplate='Date: %{x|%b, %Y}<br>Rate: %{y} %<extra></extra>' )) fig.show()
模板语法说明
%{x|%b, %Y}:对X轴日期值应用格式化,%b输出月份缩写(如Nov),%Y输出4位年份%{y} %:直接调用Y轴的Rate数值,后面拼接%符号<extra></extra>:移除默认显示的trace名称,让悬停内容更简洁
内容的提问来源于stack exchange,提问作者Cace
相关产品推荐
相关产品推荐

