gpt4 book ai didi

python - 使用 matplotlib 和子图绘制多个条形图

转载 作者:行者123 更新时间:2023-12-05 04:02:19 40 4
gpt4 key购买 nike

我想使用 matplotlib 库(或其他库,如果可能)绘制多个条形图,并使用子图将每个图形放置在其位置。

我还使用 groupby 在每个类别中进行分组并对值求和。然后我只想显示三列(Num1、Num2、Num3):

#Build subplot with three rows and two columns
fig, axes = plt.subplots(figsize=(12, 8) , nrows = 3, ncols = 2)
fig.tight_layout()

#five categorical columns and three numerical columns of interest
for i, category in enumerate(['Cat1', 'Cat2', 'Cat3', 'Cat4', 'Cat5']):
ax = fig.add_subplot(3,2,i+1)
data.groupby(category).sum()[['Num1','Num2','Num3']].plot.bar(rot=0)
plt.xticks(rotation = 90)

我得到的是按 3 行和 2 列排列的六个空图,然后是一个接一个排列在一列中的 5 个正确图。在照片中可以看到一个地 block 的例子。

感谢您的帮助和建议。

Figure Hereeee

最佳答案

当您使用 fig, axes = plt.subplots(figsize=(12, 8) , nrows = 3, ncols = 2) 创建图形时,您已经初始化了所有子图nrowsncols 关键字。 axes 是您可以在 for 循环期间迭代的列表。

我认为如果你改变一切都会正常工作:

ax = fig.add_subplot(3,2,i+1)

到:

ax = axes[i]

一起:

fig, axes = plt.subplots(figsize=(12, 8) , nrows = 3, ncols = 2)
fig.tight_layout()

#five categorical columns and three numerical columns of interest
for i, category in enumerate(['Cat1', 'Cat2', 'Cat3', 'Cat4', 'Cat5']):
ax = axes[i]
data.groupby(category).sum()[['Num1','Num2','Num3']].plot.bar(rot=0,ax=ax)
ax.xticks(rotation = 90)

关于python - 使用 matplotlib 和子图绘制多个条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54450772/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com