首页 > 解决方案 > 使用 Matplotlib savefig 动态命名

问题描述

我有一个带有一些列的df,我正在使用这样的循环创建二元图:

for col in df.columns[2:len(df.columns)]:
    sns.factorplot(x='xvar', y=col,  data=df)
    sns.despine(offset=10, trim=True)

    plt.show()
    plt.clf()

plt.close()

我不想显示所有图,而是使用命名约定 [xaxis]_y[axis].png 保存它们。但是,我不确定如何通过 plt.savefig() 传递超过 1 个项目,其中一个项目每次都会更改。我已经看到了一些依赖列表(12)的答案,但我希望有一种方法可以实现相同的结果,而无需创建要通过的列表。

标签: pythonpython-3.xpandasmatplotlibseaborn

解决方案


由于python 3.6您可以使用f-strings动态格式化字符串:

for col in df.columns[2:]:
    sns.factorplot(x='xvar', y=col, data=df)
    sns.despine(offset=10, trim=True)
    plt.savefig(f'xvar_{col}.png')

推荐阅读