我如何告诉matplotlib我完成了一个情节?

下面的代码绘制到两个PostScript (.ps)文件,但第二个包含两个行。

import matplotlib import matplotlib.pyplot as plt import matplotlib.mlab as mlab plt.subplot(111) x = [1,10] y = [30, 1000] plt.loglog(x, y, basex=10, basey=10, ls="-") plt.savefig("first.ps") plt.subplot(111) x = [10,100] y = [10, 10000] plt.loglog(x, y, basex=10, basey=10, ls="-") plt.savefig("second.ps") 

我怎么能告诉matplotlib重新开始第二个阴谋?

例如,您可以使用figure来创build一个新的绘图,或者在第一个绘图之后使用close

有一个明确的数字命令,它应该为你做:

 plt.clf() 

如果在同一个图中有多个子图

 plt.cla() 

清除当前轴。

正如David Cournapeau所说,使用figure()。

 import matplotlib import matplotlib.pyplot as plt import matplotlib.mlab as mlab plt.figure() x = [1,10] y = [30, 1000] plt.loglog(x, y, basex=10, basey=10, ls="-") plt.savefig("first.ps") plt.figure() x = [10,100] y = [10, 10000] plt.loglog(x, y, basex=10, basey=10, ls="-") plt.savefig("second.ps") 

或者对于相同的情节,不同的位置,子情节(121)/子情节(122)。

 import matplotlib import matplotlib.pyplot as plt import matplotlib.mlab as mlab plt.subplot(121) x = [1,10] y = [30, 1000] plt.loglog(x, y, basex=10, basey=10, ls="-") plt.subplot(122) x = [10,100] y = [10, 10000] plt.loglog(x, y, basex=10, basey=10, ls="-") plt.savefig("second.ps") 

只要在第一个plt.plot之前inputplt.hold(False) ,就可以坚持原来的代码。

如果你正在交互使用Matplotlib,例如在一个web应用程序(例如ipython)中,你可能正在寻找

 plt.show() 

而不是plt.close()plt.clf()