在 for 循环中配置 matplotlib 子图

elk*_*000 1 python matplotlib pandas subplot

我正在尝试遍历 Pandas 数据框中的一些数据并绘制成不同的子图,但不太确定我做错了什么。

这是代码:

df2 = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
fig, axes = plt.subplots(nrows=4, ncols=1, sharex=True)
for i, col in enumerate(df2.columns):
    print(col)
    axes[i] = df2[col].plot(kind="box")
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我怎样才能填满其他子图?

Mab*_*lba 6

有一种更简单的方法可以做到这一点,您只需要df.plot处理该选项subplots=True,然后在那里更改异常值,垂直 ( layout=(4,1)):

df2.plot(kind='box',subplots=True, layout=(4,1), figsize=(8,8))
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

或者,如果您希望子图水平分布 ( layout=(1,4)):

df2.plot(kind='box',subplots=True, layout=(1,4),figsize=(15,8))
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

最后,您可以通过以下方式将所有箱线图放在一起:

df2.plot(kind='box', figsize=(8,8))
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

有关如何使用 Pandas 进行可视化的更多信息,请查看文档