所以我有一个函数generategraph(file),它根据参数中的数据正确地创建一个条形图,然后保存它。这是保存它的部分。
plt.show()
savefile = file.split('.txt')[0] + '.png'
plt.savefig(savefile)
字符串
然后在main中,我将遍历一组文件,并对每个文件调用generategraph。
for fil in files:
generategraph(fil)
型
plt.show()给了我正确的图形(每次不同的图形),但是当我去保存的图形时,它们都是相同的图形(所以len(files)保存的图形的数量,但是每个都是第一个文件的图形,如果有意义的话)。我只是感到困惑,因为plt.show()正在做我希望plt.savefig做的事情。
3条答案
按热度按时间jgovgodb1#
您正在使用状态机(pyplot)接口。别说了
明确创建图形:
字符串
直接作用于它们:
型
然后分别保存并关闭它们:
型
0aydgbwb2#
您可能需要验证所保存地物的名称是否与每个地物的名称不同。(以下是伪代码,不清楚你是如何得到文件名的。)
**[edit]**那么你可能应该把
plt.show()
放在plt.savefig(savefile)
之后字符串
或者,更改
generategraph
的签名型
gwbalxhn3#
我也有同样的问题。我没有在绘制完图形后立即使用
plt.savefig('figure name.png')
,而是使用了savefile.savefig('figure name.png')
。这就解决了