使用一个看起来像这样的简单数据框
以下代码
fig = px.timeline(df,
x_start="Target Date Start",
x_end="Target Date End",
y="Initiative",
color="Status Bin",
facet_row="Project Key",
template="plotly_white")
生成不根据facet行进行调整的图表。我希望只有与给定项目键相关的举措才会显示在 y 标记中,但会显示所有举措:
请注意,它仅显示相关条形,但它显示所有 y 标记,而不是过滤相关举措,并且它在 facet_rows 之间保持相同的大小,而我希望它们的大小与各自的举措数量成正比。组
如果您的目标是优化每个子图的 y 轴,而不是使 y 轴值对所有子图通用,那么图形对象可以处理此问题,但它会破坏组织良好的可视化图形x 和 y 轴。
import plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots
row_cnt = len(df['Project Key'].unique())
fig = make_subplots(rows=row_cnt, cols=1)
for idx,k in enumerate(df['Project Key'].unique()):
dff = df[df['Project Key'] == k]
print(dff)
tl = px.timeline(dff,
x_start="Target Date Start",
x_end="Target Date End",
y="Initiative",
color="Status Bin")
for t in range(len(tl.data)):
fig.add_trace(tl.data[t], row=idx+1, col=1)
fig.update_xaxes(type='date')
fig.update_layout(height=1200, width=1000, template="plotly_white")
fig.show()