我正在使用 pythonplotly 库绘制一个跨越多年的图表 -
import plotly.express as px
当图表完整显示时,悬停文本中显示的
date
仅包含月份和年份 M-YYYY
。
但是当放大时会显示完整日期
M-DD-YYYY
hovertemplate
或 hovermode
中或相关的设置是否允许始终显示完整日期?
这可以在以下示例中复制:
import numpy as np
import pandas as pd
import plotly.express as px
start=pd.to_datetime("2016-01-01")
end=pd.to_datetime("2022-12-31")
length = end - start
df = pd.DataFrame({'Date':pd.date_range(start="2016-01-01",end="2022-12-31"),
'Value':np.random.randint(5,30,size=length.days+1)})
fig = px.area(df, x='Date', y="Value",
title = "Example Data",)
fig.update_traces(line_color='firebrick')
fig.update_layout(hovermode="x unified")
fig.show()
您需要提供适用于悬停数据的格式字符串,请使用
hover_data
:
fig = px.area(df, x='Date', y="Value",
title="Example Data",
hover_data={'Date': '|%B %d, %Y'})
@见
首先,为悬停文本创建日期格式字符串
date_format = "%b %d, %Y"
然后,将 x 轴
tickformat
更新为所需的日期格式
fig.update_xaxes(tickformat=date_format)
但是此解决方案也会格式化
x-axis
标签
另一个不需要 Plotly Express 的解决方案是
hovertemplate
中的 update_traces
。 例如:
fig.update_traces(hovertemplate='%{x:.}')
鼠标悬停时现在显示 YYYY-MM-DD 格式。
fig.update_traces(hovertemplate='Date %{x:.}')
鼠标悬停时现在显示
Date <YYYY-MM-DD>
。
有关更多信息,请参阅官方文档:https://plotly.com/python/hover-text-and-formatting/