for 循环错误地在同一图形上绘制箱线图

for loop incorrectly plotting boxplot on same figure

我在下面的代码中尝试创建三个单独的图形。我正在尝试为列表中的每一列创建一个带有箱线图的图形。当我 运行 这段代码时,它会将同一图中的所有三个箱线图绘制在彼此之上。如果我改为将它更改为直方图,它会完美地工作,为每个直方图创建一个单独的图形。有人可以让我知道如何解决这个问题吗?我还在下面包含了一些示例数据。

代码:

for i in ['Fresh', 'Milk', 'Grocery']:
            data_df.boxplot(column=i)

数据:

print(data_df[:10])

   Channel  Region  Fresh   Milk  Grocery  Frozen  Detergents_Paper  \
0        2       3  12669   9656     7561     214              2674   
1        2       3   7057   9810     9568    1762              3293   
2        2       3   6353   8808     7684    2405              3516   
3        1       3  13265   1196     4221    6404               507   
4        2       3  22615   5410     7198    3915              1777   
5        2       3   9413   8259     5126     666              1795   
6        2       3  12126   3199     6975     480              3140   
7        2       3   7579   4956     9426    1669              3321   
8        1       3   5963   3648     6192     425              1716   
9        2       3   6006  11093    18881    1159              7425   

   Delicatessen  
0          1338  
1          1776  
2          7844  
3          1788  
4          5185  
5          1451  
6           545  
7          2566  
8           750  
9          2098  

你可以试试这个:

import matplotlib.pyplot as plt
df[['Fresh','Milk','Grocery']].plot.box(subplots=True)
plt.tight_layout()

输出: