从eclipse运行时,关闭matplotlib中预先存在的数字

Anj*_*Man 65 python numpy matplotlib pydev

我的问题很简单:我有一个使用matplotlib生成数字的python脚本.每次我运行它都会生成带有数字的新窗口.如何让脚本关闭上次运行时打开的窗口?

matlab中的类似命令是在matlab脚本的开头放置"关闭所有".

我已经看到了一些建议来做类似的事情

import matplotlib.pyplot as plt
plt.close("all")
Run Code Online (Sandbox Code Playgroud)

如果您从python shell运行脚本,例如使用,则此解决方案有效

>>>> execfile("myScript.py")
Run Code Online (Sandbox Code Playgroud)

但是,我发现如果我使用Eclipse/PyDev运行脚本,这不起作用.我怎样才能让它在Eclipse中运行?

例:

from numpy import *
from matplotlib.pyplot import *
from scipy import *

close("all") 
    #close any previously open plots - this doesn't work when running via Eclipse

t = linspace(0, 0.1,1000)
w = 60*2*pi

figure()
plot(t,cos(w*t))
plot(t,cos(w*t-2*pi/3))
plot(t,cos(w*t-4*pi/3))
show()
Run Code Online (Sandbox Code Playgroud)

这应绘制一个漂亮的三相电源的理想波形.

Bi *_*ico 81

你可以通过调用来关闭一个数字matplotlib.pyplot.close,例如:

from numpy import *
import matplotlib.pyplot as plt
from scipy import *

t = linspace(0, 0.1,1000)
w = 60*2*pi


fig = plt.figure()
plt.plot(t,cos(w*t))
plt.plot(t,cos(w*t-2*pi/3))
plt.plot(t,cos(w*t-4*pi/3))
plt.show()
plt.close(fig)
Run Code Online (Sandbox Code Playgroud)

您也可以通过致电关闭所有未结数字 matplotlib.pyplot.close("all")

  • @AnjoMan你为什么接受这个答案?它显然没有回答你的问题. (6认同)
  • @dbliss我老实说不记得了.我认为我解决这个问题的方式是"不要使用eclipse". (5认同)
  • 这适用于控制台(例如在python shell中运行'>>> execfile("script.py")),但不在Eclipse/PyDev中.有什么不同? (2认同)