问题描述
我在所有博客上都徒劳地查找了答案......我只是在寻找一种方法来在我的图表上以小时精度显示日期时间。这是我的代码生成的示例:
我的“开始日期”和“结束日期”通常采用以下格式“mm-dd-yyyy H-M-S”,但在我放大之前它不会显示小时精度
我知道这个问题听起来很愚蠢,但如果你能指出我正确的方向,我将不胜感激
编辑:
解决方法
这是设置xaxis_tickformat的情况。如果没有此示例,下面的行为将与您描述的一样,没有小时精度
import pandas as pd
import numpy as np
import plotly.express as px
# for hour slots randonly assign a task
df = pd.DataFrame({"Start": pd.date_range("1-jan-2021",periods=10**3,freq="4H")}).assign(
End=lambda d: d.Start + pd.Timedelta(hours=1),Task=np.random.choice([f"Task {i}" for i in range(2)],10**3,p=(0.8,0.2)),)
# compress consequetive rows
df = df.groupby(df.Task.ne(df.Task.shift()).cumsum()).agg(
{"Start": "min","End": "max","Task": "first"})
fig = px.timeline(df,x_start="Start",x_end="End",y="Task",color="Task")
fig.update_layout(xaxis_tickformat = '%Y-%m-%d %H:%M')
更改只是悬停模板而不是整体轴
fig = px.timeline(df,color="Task")
print(fig.data[0].hovertemplate) # just FYI so can see what default template is
fig.update_traces(hovertemplate="Task=%{y}<br>Start=%{base|%Y-%m-%d %H:%M}<br>End=%{x|%Y-%m-%d %H:%M}<extra></extra>")