首页 > 解决方案 > 分组值计数条形图的子图

问题描述

我的桌子看起来像下面的东西

YEAR    RESPONSIBLE DISTRICT
2014    01 - PARIS
2014    01 - PARIS
2014    01 - PARIS
2014    01 - PARIS
2014    01 - PARIS
... ... ...
2017    15 - SAN ANTONIO
2017    15 - SAN ANTONIO
2017    15 - SAN ANTONIO
2017    15 - SAN ANTONIO
2017    15 - SAN ANTONIO

我写完之后

g = df.groupby('FISCAL YEAR')['RESPONSIBLE DISTRICT'].value_counts()

我在下面

YEAR         RESPONSIBLE DISTRICT
2014         05 - LUBBOCK            12312
             15 - SAN ANTONIO        10457
             18 - DALLAS              9885
             04 - AMARILLO            9617
             08 - ABILENE             8730
                                     ...  
2020         21 - PHARR               5645
             25 - CHILDRESS           5625
             20 - BEAUMONT            5560
             22 - LAREDO              5034
             24 - EL PASO             4620

我总共有25个区。现在我想创建 25 个子图,所以每个子图代表一个地区。对于每个子图,我希望 2014-2020 年位于 x 轴上,值计数位于 y 轴上。我怎么能那样做?

标签: pythonpandasmatplotlibbar-chartsubplot

解决方案


这是你所期望的吗?

import matplotlib.pyplot as plt

fig, axs = plt.subplots(5, 5, sharex=True, sharey=True, figsize=(15, 15))
for ax, (district, sr) in zip(axs.flat, g.groupby('RESPONSIBLE DISTRICT')):
    ax.set_title(district)
    ax.plot(sr.index.get_level_values('YEAR'), sr.values)
fig.tight_layout()

plt.show()

生产.png


推荐阅读