如何使 plotply.express.timeline 图形具有不同的高度和颜色

问题描述

我正在尝试使用时间线图表显示下面图表中具有不同高度的每一行(Y 轴)。代码:

import plotly.express as px
import pandas as pd

df = pd.DataFrame([dict(Task="Task1",Start='2017-01-01',Finish='2017-02-15',Phase ='Phase1',Height=0.50),dict(Task="Task1",Start='2017-02-15',Finish='2017-03-15',Phase ='Phase2',dict(Task="Task2",Start='2017-01-17',Finish='2017-02-17',Height=0.2),Start='2017-02-18',Finish='2017-03-17',Phase ='Phase3',Height=0.20),dict(Task="Task3",Start='2017-03-10',Finish='2017-03-31',Height=1.0),Start='2017-04-01',Finish='2017-05-20',Start='2017-05-18',Finish='2017-06-18',dict(Task="Task4",Start='2017-01-14',Finish='2017-03-14',Phase ='Phase4',Height=0.4)])

colors = {'Shadow': 'rgb(237,125,49)','Rev Shadow': 'rgb(0,255,100)','KA': 'rgb(68,114,196)','Enablement': 'rgb(150,150,150)'}

fig = px.timeline(df,y = 'Task',x_start='Start',x_end = 'Finish',color= 'Phase',color_discrete_sequence=px.colors.qualitative.D3)
fig.update_layout(autosize=False,width=800,height=300)

fig.show()

Timeline chart with correct colors,but same height

能否请您帮助说明如何增加/减少每个条的高度。请注意,一行(任务)中的所有单个条形都将具有相同的高度。 此外,我可以将 px.timeline 中的颜色参数更改为“任务”并运行以下命令,这将按照我想要的方式更改“高度”。但是,这将使整行(任务)具有相同的颜色。我得到了我想要的高度,但在这种情况下没有得到颜色......

请帮助并提前致谢!!

fig = px.timeline(df,color= 'Task',height=300)

for i,d in enumerate(fig.data):
    d.width = df[df['Task']==d.name]['Height']

Timeline chart with correct height,but same color for each task

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)