[英]Python Plotly Stacked Bar Chart with multiple values (indicators)
我有以下示例數據:
日期 | 工作 | 積極的 | 完全的 |
---|---|---|---|
2022-06-01 | 工作1 | 3 | 2 |
2022-06-01 | 工作2 | 5 | 1 |
2022-06-02 | 工作1 | 4 | 3 |
2022-06-02 | 工作2 | 6 | 4 |
2022-06-03 | 工作1 | 5 | 5 |
2022-06-03 | 工作2 | 3 | 1 |
我想得到下一個結果:
我正在嘗試使用以下代碼:
fig=go.Figure()
colors = ['#0b215c','#4d256c','#812571','#af286d','#d6385f','#f1564a','#ff7c30','#ffa600']
group = df['JOB'].unique()
for t,c in zip(group,colors):
dfp = df[df['JOB']==t]
fig.add_traces(go.Bar(x=dfp['DATE'], y = dfp['ACTIVE'], name=t, marker_color=c))
for t,c in zip(group,colors):
dfp = df[df['JOB']==t]
fig.add_traces(go.Bar(x=dfp['DATE'], y = dfp['COMPLETED'], name=t, marker_color=c))
fig.update_layout(
barmode='stack')
但結果我只得到了 3 個條形圖,其中 Active 和 Completed 相加(不是 Active 和 Completed 值的單獨條形圖)。
該圖將是具有兩個類別的堆疊圖,因此我們需要設計一種在 x 軸上繪制兩個類別的方法。 由於不可能按原樣偏移時間序列,因此我們將創建一個任意 x 軸,並將偏移值添加到我們為另一個 x 軸設置的值上。 最后一步是為新的 x 軸的索引設置日期字符串。
import plotly.graph_objects as go
import numpy as np
fig=go.Figure()
colors = ['#0b215c','#4d256c','#812571','#af286d','#d6385f','#f1564a','#ff7c30','#ffa600']
group = df['Job'].unique()
for t,c in zip(group,colors):
dfp = df[df['Job']==t]
fig.add_traces(go.Bar(x=[1,2,3], y = dfp['Active'], name=t, marker_color=c, showlegend=True))
fig.update_layout(barmode='stack')
for t,c in zip(group,colors):
dfp = df[df['Job']==t]
fig.add_traces(go.Bar(x=[1.5,2.5,3.5], y = dfp['Completed'], name=t, marker_color=c, showlegend=False))
fig.update_layout(barmode='stack')
fig.update_layout(bargap=0.1)
fig.update_xaxes(
tickvals=np.arange(1,4.0,0.5),
ticktext=['2022-06-01','2022-06-01','2022-06-02','2022-06-02','2022-06-03','2022-06-03'])
fig.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.