【发布时间】:2021-07-08 07:48:52
【问题描述】:
我正在尝试使用时间线图在下图中显示具有不同高度的每一行(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', Height=0.50),
dict(Task="Task2", Start='2017-01-17', Finish='2017-02-17', Phase ='Phase2', Height=0.2),
dict(Task="Task2", Start='2017-02-18', Finish='2017-03-17', Phase ='Phase3', Height=0.20),
dict(Task="Task3", Start='2017-03-10', Finish='2017-03-31', Phase ='Phase1', Height=1.0),
dict(Task="Task3", Start='2017-04-01', Finish='2017-05-20', Phase ='Phase2', Height=1.0),
dict(Task="Task3", Start='2017-05-18', Finish='2017-06-18', Phase ='Phase3', Height=1.0),
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, y = 'Task', x_start='Start', x_end = 'Finish', color= 'Task',
color_discrete_sequence=px.colors.qualitative.D3)
fig.update_layout(autosize=False, width=800, 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
【问题讨论】:
标签: python-3.x timeline enumerate gantt-chart plotly-express