for循环在同一图上错误地绘制了boxplot

时间:2019-06-04 20:09:37

标签: python-3.x pandas matplotlib seaborn boxplot

我在下面的代码中尝试创建三个单独的图形。我正在尝试为列表中的每一列创建一个带有箱线图的图形。当我运行此代码时,它会将同一图中的所有三个箱形图相互重叠。如果我改为将其更改为直方图,则效果很好,可以为每个直方图创建单独的图形。有人可以让我知道如何解决此问题吗?我还在下面提供了一些示例数据。

代码:

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  

1 个答案:

答案 0 :(得分:1)

您可以尝试以下方法:

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

输出:

enter image description here