在循环中保存图形
我不知道这样做是否可行,但我希望能清楚地表达我想要实现的目标。
假设我们有:
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