如何使用for循环“填充”子图?

时间:2019-12-09 07:24:00

标签: python matplotlib subplot

我目前正在尝试制作子图,然后使用循环将其填充。更具体地说,我大约有50个CSV文件,每个文件都有两列。我想使用每个文件的两列来创建散点图,从而得到50个图。我拥有的代码是:

files = os.listdir() # List to contain the 50 file names.

fig, axes = plt.subplots(nrows=10, ncols=5, figsize=(45, 30))

axes = axes.ravel()

for idx, filename in enumerate(range(1, len(files) + 1)):
    df = pd.read_csv(files[idx - 1]) # Read in the appropriate file.
    axes[idx] = sns.scatterplot(x='pred', y='obs', data=df, alpha=0.3)
    axes[idx].set_title('Plot {}'.format(idx), fontsize='x-large')

如果运行此代码,则会得到49个空子图,并且所有数据都将重叠到最后一个子图中。我将如何实现自己想要的?预先感谢。

1 个答案:

答案 0 :(得分:1)

您需要将轴作为参数传递给scatterplot

sns.scatterplot(x='pred', y='obs', data=df, alpha=0.3, ax=axes[idx])