簡體   English   中英

具有多個值(指標)的 Python Plotly 堆積條形圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM