如何保存来自 python 循环的不同名称的多个绘图? [复制]

Posted

技术标签:

【中文标题】如何保存来自 python 循环的不同名称的多个绘图? [复制]【英文标题】:How can I save several plot with different names coming from loop in python? [duplicate] 【发布时间】:2018-09-20 21:07:31 【问题描述】:

我是 python 新手。我正在做一个循环,为属于一个列表的许多国家绘制相同的数字。当我尝试将绘图保存在我指定的路径中时,保存的绘图只是最后一个。如何保存来自每次交互并根据 plt.title 更改的具有不同名称的每个图?数字显示在单元格中,但我无法保存。

for c in countries_list:     
    ax = emissions.loc[c].T.plot(kind='area', rot= 0, stacked=True)     
    plt.title('Emissions of' + ' ' + c, fontsize='14', fontname="sans")     
    plt.savefig('../plots/test.pdf', bbox_inches='tight')

【问题讨论】:

请注意,您在循环中一直使用相同的文件名,因此您会一直覆盖文件内容 plt.savefig('../plots/test.pdf', bbox_inches='tight') 更改为plt.savefig('../plots/test_.pdf'.format(c), bbox_inches='tight') 更多here 【参考方案1】:

您需要为每个地块指定一个唯一的名称。否则每个情节都会覆盖最后一个情节,这就是为什么你只能得到最后一个情节。

试试:

'../plots/test' + '-' + c + '.pdf'

【讨论】:

@roganjosh 将它们更改为单引号。 双引号也是有效的,但是您使用了一些无法识别的花哨的引号字符:) 感谢您指出这些细节。我肯定看过了。我原来的帖子来自我的 iPhone,他们的目标似乎是花哨的引文。但我通常喜欢单引号并在我的笔记本电脑上编辑它。 啊哈,我在答案中发现了一个主题。 iphone 双引号转换为 SO 上的一些无效字符(对于 Python) 要解决这个问题,您只需关闭“智能标点符号”!【参考方案2】:

你可以这样试试:

for index, c in enumerate(countries_list):     
    ax = emissions.loc[c].T.plot(kind='area', rot= 0, stacked=True)     
    plt.title('Emissions of' + ' ' + c, fontsize='14', fontname="sans")     
    plt.savefig('../plots/test-0.pdf'.format(index), bbox_inches='tight')

因此,每次保存情节的 pdf 名称都会有所不同。

【讨论】:

以上是关于如何保存来自 python 循环的不同名称的多个绘图? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Python pandas 保存多个不同名称的 CSV

如何在循环中的每次迭代中保存具有不同名称的文件? MATLAB

如何在循环中创建多个具有不同名称的 tkinter 小部件?

如何在python中保存多个xml文件

如何使用循环插入噪声并将多个图像保存在不同的文件夹中?(matlab)

python如何以不同的名称保存视频?