选择要在屏幕上显示的数字以及使用Python的matplotlib保存到文件的数据

gan*_*223 11 python matplotlib

我想用Python创建不同的数字matplotlib.pyplot.然后,我想将其中一些保存到文件中,而其他应该使用该show()命令在屏幕上显示.

但是,show()显示所有创建的数字.我可以通过close()在创建我不想在屏幕上显示的图表之后调用来避免这种情况,如下面的代码所示:

import matplotlib.pyplot as plt

y1 = [4, 2, 7, 3]
y2 = [-7, 0, -1, -3]

plt.figure()
plt.plot(y1)
plt.savefig('figure1.png')
plt.close()

plt.figure()
plt.plot(y2)

plt.show()
plt.close('all')
Run Code Online (Sandbox Code Playgroud)

这样可以保存第一个数字并显示第二个数字.但是,我收到一条错误消息:

无法调用"event"命令:应用程序在执行时已被销毁

是否有可能以更优雅的方式选择要显示的数字?

还有,第一个figure()命令是多余的吗?无论我是否愿意,它似乎没有什么不同.

提前谢谢了.

小智 4

更好的方法是使用plt.clf()而不是plt.close(). 此外,您还plt.figure()可以创建一个新图表,而您可以使用以下命令清除前一个图表plt.clf()

import matplotlib.pyplot as plt

y1 = [4, 2, 7, 3]
y2 = [-7, 0, -1, -3]

plt.figure()
plt.plot(y1)
plt.savefig('figure1.png')
plt.clf()

plt.plot(y2)

plt.show()
plt.clf()
Run Code Online (Sandbox Code Playgroud)

此代码不会生成错误或警告,例如无法调用“事件”命令...