Python 如何显示';小时精度';Plotly express中的日期时间?

Python 如何显示';小时精度';Plotly express中的日期时间?,python,plotly,plotly-express,Python,Plotly,Plotly Express,我在所有的博客上都找不到答案。。。我只是在寻找一种在图表上精确显示日期时间的方法。下面是我的代码生成的示例: 我的“开始日期”和“结束日期”通常采用以下格式“mm dd yyyy H-M-S”,但在放大之前,它不会显示小时精度 我知道这个问题听起来很愚蠢,但如果你能给我指出正确的方向,我将不胜感激 编辑: 这是设置xaxis\u格式的一种情况。如果没有此示例,下面的行为将与您描述的一样,没有小时精度 import pandas as pd import numpy as np import p

我在所有的博客上都找不到答案。。。我只是在寻找一种在图表上精确显示日期时间的方法。下面是我的代码生成的示例:

我的“开始日期”和“结束日期”通常采用以下格式“mm dd yyyy H-M-S”,但在放大之前,它不会显示小时精度

我知道这个问题听起来很愚蠢,但如果你能给我指出正确的方向,我将不胜感激

编辑:


这是设置xaxis\u格式的一种情况。如果没有此示例,下面的行为将与您描述的一样,没有小时精度

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.时间线(df,x_start=“start”,x_end=“end”,y=“Task”,color=“Task”)
打印(图数据[0].hovertemplate)#仅供参考,以便查看默认模板是什么
图.update_跟踪(hovertemplate=“Task=%{y}
Start=%{base}%y-%m-%d%H:%m}
End=%{x}%y-%m-%d%H:%m})
原始数据是否有时间数据?应该显示图表所基于的数据和代码。事实上,我的原始数据当然有时间。检查我在编辑中添加的照片,一旦我放大,他们就会开始显示日期和时间。。。但是,当我自动缩放以查看整个间隔时,他们开始从它开始剪切时间,即使它与X轴的长度或某些东西无关,以便按您想要的方式缩放,您可以参考以下内容:为了获得您想要的确切格式,您可以参考以下内容:我非常欣赏这样的回答。它是简短、简单和建设性的。罗布,谢谢你抽出时间!不得不注意,您的方法对打印的数据应用了相同的格式&x轴。难道没有办法保持x轴完整,只修改数据的格式吗?我试着修改数据框(其中包含绘制的数据),这是在vainit的技术中实现的。。。已更新如何仅更改悬停文本
fig = px.timeline(df, x_start="Start", x_end="End", y="Task", 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>")