在循环中保存图形

2 投票
2 回答
32621 浏览
提问于 2025-04-18 08:54

我不知道这样做是否可行,但我希望能清楚地表达我想要实现的目标。

假设我们有:

from pylab import *
import matplotlib.pyplot as plt
%matplotlib inline

fig = plt.figure(figsize=(10,10))

y = 2

for x in xrange(0,5):
    value = [1,int(y)]
    plt.plot(value)
    plt.savefig("value" + y + ".png")
    y+=1

我的目标是得到5个图(或者我觉得这会给我6个图),但我希望它们每个都能用不同的名字保存,这样在循环每次运行时就不会覆盖之前的图。这样做可能吗?

注意:这个例子中的数字和数值是随意的。我只是希望能像这样在循环中绘图,并且有一个动态的方法来保存图的名字。

2 个回答

5

你不能把一个字符串(比如 "value")和一个整数(比如 y)加在一起。如果你这样做了,就会出现一个 TypeError 错误。建议你使用字符串格式化的方法来处理。

plt.savefig("value{y}.png".format(y=y))
6

你不需要y,只要在你的循环中使用x就可以了。

for x in xrange(1,6): # starts at 1 and goes to 5
    print ("value" + str(x) + ".png")
value1.png
value2.png
value3.png
value4.png
value5.png

撰写回答