簡體   English   中英

Plotly express:特定數據列的分組堆疊

[英]Plotly express: Grouped and stacked of specific data colomns

我有一個 6 列的表,如下所示:

在此處輸入圖像描述

我需要准備一個堆疊和分組的圖表,如下所示(我沒有在這里顯示 E,但它在 C & D 的列中): 在此處輸入圖像描述

我試過使用這條線:

px.bar(df2, x="Year", y=["Year", "A", "B", "C", "D", "E"], barmode="group").show()

但顯然它沒有按預期工作(因為我不知道如何“告訴”我想將哪些列堆疊在一起)。 我得到這張圖: 在此處輸入圖像描述

誰能幫我定義要堆疊的列? (即 A & B、C & D & E)我想在 plotly.express 中進行。

預期的 output 是一組堆疊圖,但據我所知,沒有簡單的方法可以實現這一點。 因此,我根據從多個索引創建圖形的示例創建了數據結構。 可以在此處找到參考。 我為 x 軸手動創建了多個索引,並為每個索引指定了列。 此圖的限制是列名是必需的。 不能像預期的 output 圖中那樣調整每組的條間距。

import plotly.graph_objects as go

fig = go.Figure()
fig.add_trace(go.Bar(x=[[2019,2020,2021],['AB','AB','AB']], y=df['A'], name='A'))
fig.add_trace(go.Bar(x=[[2019,2020,2021],['AB','AB','AB']], y=df['B'], name='B'))
fig.add_trace(go.Bar(x=[[2019,2020,2021],['CD','CD','CD']], y=df['C'], name='C'))
fig.add_trace(go.Bar(x=[[2019,2020,2021],['CD','CD','CD']], y=df['D'], name='D'))

fig.update_traces(selector=dict(type='bar'), width=[0.85,0.85,0.85,0.85,0.85,0.85]) 
fig.update_layout(autosize=False, barmode='stack', bargap=0.0, bargroupgap=0.0, legend=dict(traceorder='normal'))

fig.show()

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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