【问题标题】:Dynamic naming using Matplotlib savefig使用 Matplotlib savefig 动态命名
【发布时间】:2020-06-17 06:05:41
【问题描述】:

我有一个包含一些列的 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),但我希望有一种方法可以实现相同的结果,而无需创建要通过的列表。

【问题讨论】:

  • 不确定您所说的使用列表是什么意思。无论如何,您需要为您的绘图提供一个文件名。我假设你的列名是字符串,所以这可能像 plt.savefig(col + ".png") 一样简单。这有什么问题?

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


【解决方案1】:

由于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')

【讨论】:

    【解决方案2】:
    plt.savefig('var1' + '_' + col' + '.png')
    

    达到了预期的效果

    【讨论】:

      猜你喜欢
      • 2016-08-08
      • 2018-01-12
      • 1970-01-01
      • 2012-10-15
      • 2011-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多