gpt4 book ai didi

python - 带有整数 xaxis 的甘特图的 Plotly Express 时间线?

转载 作者:行者123 更新时间:2023-12-04 00:51:33 25 4
gpt4 key购买 nike

我正在使用 plotly express 时间线来生成一个甘特图,下面这个例子:https://medium.com/dev-genius/gantt-charts-in-python-with-plotly-e7213f932f1e
它会自动设置 x 轴以使用日期,但我实际上只想使用整数(即项目启动 +1、项目启动 +6 等)。
有没有办法让时间线图不使用 xaxis 的日期?
如果我尝试使用整数,它会将它们视为毫秒。

最佳答案

答案:
是的,这是可能的!只需将整数作为开始和结束“日期”,计算它们之间的差异( delta ),然后对您的 fig 进行这些更改:

fig.layout.xaxis.type = 'linear'
fig.data[0].x = df.delta.tolist()
阴谋
enter image description here
细节:
尽管 docs 实际上有一种方法可以实现这一点声明:

The px.timeline function by default sets the X-axis to be oftype=date, so it can be configured like any time-series chart.


因此 px.timeline() 中的所有其他功能似乎围绕着这个事实。但是如果你只是忽略它并使用整数作为 Start 的值和 Finish ,然后您可以调整一些属性以获得您想要的。您只需要计算每个 Start 之间的差异和 Stop .例如像这样:
df = pd.DataFrame([
dict(Task="Job A", Start=1, Finish=4),
dict(Task="Job B", Start=2, Finish=6),
dict(Task="Job C", Start=3, Finish=10)
])
df['delta'] = df['Finish'] - df['Start']
然后进一步调整:
fig.layout.xaxis.type = 'linear'
fig.data[0].x = df.delta.tolist()
完整代码:
import plotly.express as px
import pandas as pd

df = pd.DataFrame([
dict(Task="Job A", Start=1, Finish=4),
dict(Task="Job B", Start=2, Finish=6),
dict(Task="Job C", Start=3, Finish=10)
])
df['delta'] = df['Finish'] - df['Start']

fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task")
fig.update_yaxes(autorange="reversed")

fig.layout.xaxis.type = 'linear'
fig.data[0].x = df.delta.tolist()
f = fig.full_figure_for_development(warn=False)
fig.show()

关于python - 带有整数 xaxis 的甘特图的 Plotly Express 时间线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66078893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com