如何使用seaborn或matplotlib库准备2行5列网格以在一个图中绘制10个箱形图?

时间:2019-08-12 18:43:19

标签: python matplotlib seaborn

我正在尝试在给定代码但未成功的情况下,在一幅图像中绘制两行的10box图,但没有成功,我如何实现这个想法。

fig, axes =plt.subplots(2,5)
sns.set_style("darkgrid")

for i,t in enumerate(new_fs):
    df = pd.read_csv(t,sep='\t')

    sns.boxplot(data=df,  orient='v',ax=axes[i % 2] )

谢谢。

1 个答案:

答案 0 :(得分:0)

根据the documentation for plt.subplots()

  

对于NxM,将N> 1和M> 1的子图作为2D数组返回。

因此,变量axes是2D数组,您需要使用axes[i,j]访问各个轴。

或者,我会这样重写您的for循环:

for t,ax in zip(new_fs, axes.flat):
    df = pd.read_csv(t,sep='\t')
    sns.boxplot(data=df, orient='v', ax=ax)