【发布时间】:2021-07-22 17:17:09
【问题描述】:
以下是填充 3 个子图的工作示例代码。我试图将第一个子图显示为“组”(行 = 1,列 = 1),其余两个子图显示为“堆栈”。我还为每个子图选择了“barmode”。但我的最终数字包含所有“堆栈”子图。我已经推荐了几个论坛,他们建议对每个子图使用“偏移”,但即使该参数也不起作用。请建议。 注意:在实时情况下,所有子图都基于不同的数据帧,但我在这篇文章中只使用了一个数据帧。
import pandas as pd
import numpy as np
from plotly.subplots import make_subplots
import plotly.graph_objects as go
#creating my dataframe
s = 200
df = pd.DataFrame({"Country": np.random.choice(["USA America", "JPY one two", "MEX", "IND",
"AUS"], s),
"economy_cat": np.random.choice(["developing","develop"], s),
"gdp": np.random.randint(5, 75, s),
})
#filter dataframe for one country
df = df[df.Country=='USA America']
df_pivot = df.pivot_table(index='Country',columns='economy_cat',values='gdp',aggfunc='sum')
df_pivot.reset_index(inplace=True)
print(df_pivot)
fig = make_subplots(rows=2, cols=4)
# creation of subplots 1
fig.add_trace(
go.Bar(
x=df_pivot["Country"],
y=df_pivot["develop"],
marker_color = '#1f77b4',
name='develop'
),
row=1,
col=1,
)
fig.add_trace(
go.Bar(
x=df_pivot["Country"],
y=df_pivot["developing"],
marker_color = "rgba(255, 0, 0, 0.6)",
name='developing'
),
row=1,
col=1,
)
fig.update_layout(barmode = 'group')
# creation of subplots 2
fig.add_trace(
go.Bar(
x=df_pivot["Country"],
y=df_pivot["develop"],
marker_color = '#1f77b4',
name='develop'
),
row=1,
col=2,
)
fig.add_trace(
go.Bar(
x=df_pivot["Country"],
y=df_pivot["developing"],
marker_color = "rgba(255, 0, 0, 0.6)",
name='developing'
),
row=1,
col=2,
)
fig.update_layout(barmode = 'stack')
# creation of subplots 3
fig.add_trace(
go.Bar(
x=df_pivot["Country"],
y=df_pivot["develop"],
marker_color = '#1f77b4',
name='develop'
),
row=2,
col=1,
)
fig.add_trace(
go.Bar(
x=df_pivot["Country"],
y=df_pivot["developing"],
marker_color = "rgba(255, 0, 0, 0.6)",
name='developing'
),
row=2,
col=1,
)
fig.update_layout(barmode = 'stack')
fig.update_layout(
font_family="Droid Sans")
【问题讨论】:
-
大家有什么建议吗?