我有一个用于绘制事物的类,然后将它们保存到文件中。这是它的简化版本:
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
class Test():
def __init__(self, x, y, filename):
fig = plt.figure(1)
ax = fig.add_subplot(111)
ax.plot(x, y, 'D', color='red')
ax.set_xbound(-5,5)
ax.set_ybound(-5,5)
plt.savefig('%s.png' % filename)
test1 = Test(1,2, 'test1')
test2 = Test(2,4, 'test2')
结果如下:
TEST1
TEST2
问题是test2图像也有来自test1的点。图表是在循环中动态生成的,因此我无法对图号进行硬编码。
我可以创建一个计数器并将其传递给类构造函数,但我想知道是否有更优雅的方法来执行此操作。我尝试删除test1对象,但没有做任何事情。
答案 0 :(得分:10)
完成后,您可以使用图形的clf方法清除图形。此外,pyplot.clf将清除当前的数字。
或者,如果你只是想要一个新的数字然后在没有明确的num
参数的情况下调用pyplot.figure - 它会自动增加,所以你不需要保留一个计数器。