如何在一个循环中绘制列的箱线图?

How to plot the boxplot of the columns in one loop?

我在数据框 df 中有以下列:

columns = ['temperature','humidity' ,'pressure','rain' ,'lightavgw/o0' ,'lightmax','moisture']

我想要的是创建一个循环,我可以通过一个循环绘制所有列的箱线图。 我尝试了以下代码:

columns = ['temperature','humidity' ,'pressure','rain' ,'lightavgw/o0' ,'lightmax','moisture']
for col in columns:
    plt.boxplot(df[col])

但它是在同一个箱线图中绘制的。

您可以直接绘制数据框而不是通过循环

示例代码:

import numpy as np; 
import pandas as pd
import matplotlib.pyplot as plt
data = np.random.random(size=(4,4))
df = pd.DataFrame(data, columns = ['A','B','C','D'])

df.boxplot()
plt.show()

输出:

要绘制每列的图形,请在循环内使用 plt.figure()

columns = ['temperature','humidity' ,'pressure','rain' ,'lightavgw/o0','lightmax','moisture']
for col in columns:
    plt.figure()   # plots figure for each iteration
    plt.boxplot(df[col])