首页 > 解决方案 > 如何为每个地区的每一年做一个堆积条形图来计算 Quantity_Sold 的总和(或平均值)?Python

问题描述

我不知道从哪里开始,我试图得到一个如下所示的图表:

在此处输入图像描述

y_axis 表示每年和每个地区的销售数量总和,如图所示

数据集可用于:

dataset = {'Year': [2019,2020,2020,2019,2019,2020,2017,2017,2018,2020,2018,2016],
           'Quantity': [100,50,25,30,40,50,200,600,20,40,100,20],
           'Regions': ['Europe','Asia','Africa','Africa','Other','Asia','Africa','Other','America','America','Europe','Europe']}
df = pd.DataFrame(data=dataset)

另外我不确定在这种情况下使用 matplotlib 或 seaborn 是否更好。

我试过了,但它似乎不起作用:

dfc_vol = dfc[['Year','Quantity','Regions']]
plt.rcParams['figure.figsize']=(10,6)
dfc_vol.plot(kind='bar', stacked=True)
plt.legend(bbox_to_anchor=(1.1,0.5))

标签: pythonmatplotlibseabornbar-chart

解决方案


也许一个选项pivot_table用于首先重塑数据:

df_pt = df.pivot_table(index='Year', columns='Regions', values='Quantity')

df_pt.plot.bar(stacked=True, figsize=(10, 6))

输出:

在此处输入图像描述


推荐阅读