所以我有一些python代码使用pyplot绘制一些图形。每次运行脚本时都会创建新的绘图窗口,我必须手动关闭。如何在脚本开头关闭所有打开的pyplot窗口? IE浏览器。关闭在以前执行脚本期间打开的窗口?
在MatLab中,只需使用closeall
即可完成。
答案 0 :(得分:7)
要关闭脚本中的所有打开数字,您可以致电
{{1}}
或者您可以终止关联的Python进程。
答案 1 :(得分:2)
此解决方案不允许您关闭以前运行的图,但会阻止您将其保持打开状态!
我发现关闭这些“悬而未决”数字的唯一方法是找到进程并杀死它。
以非阻塞方式绘制,然后要求输入。这样可以避免您忘记正确关闭绘图。
plt.show(block=False)
plt.pause(0.001) # Pause for interval seconds.
input("hit[enter] to end.")
plt.close('all') # all open plots are correctly closed after each run
答案 2 :(得分:1)
我只是遇到了同样的问题。我调用一个生成多个绘图窗口的函数。每次我调用该函数时,弹出的绘图窗口都会累积数量。在函数开始时尝试matplotlib.pyplot.close('All')
并不能解决问题。我通过调用matplotlib.pyplot.close(figure)
解决了这个问题,其中Figure是一个地物实例(对象)。
我维护了一个绘图对象的列表。因此,最好维护一个列表,然后为图形对象的每个实例调用matplotlib.pyplot.close(figure)
:
import matplotlib.pyplot as plot
fig, (ax1,ax2) = plt.subplots(nrows=2)
figAxisDict = {'figure': fig, 'axis1': ax1, 'axis2':ax2}
figAxisList.append(figAxisDict)
if len(figAxisList) !=0:
for figAxis in figAxisList:
figure=figAxis['figure']
plot.close(figure)
figAxisList[:]=[]
答案 3 :(得分:0)
import matplotlib.pyplot as plt
plt.close("all")
(如果你已经导入了pyplot,你显然不需要再次导入它。在这种情况下,只需确保用plt
中的plt.close("all")
替换你选择的别名导入时的pyplot。)
答案 4 :(得分:0)
似乎没有绝对简单的解决方案可以从脚本本身自动执行此操作:关闭pycharm中所有现有图形的可能最简单的方法是杀死相应的进程(如jakevdp在他的评论中建议的那样):
菜单运行\停止...(Ctrl-F2)。您会发现窗户关闭了几秒钟的时间。
答案 5 :(得分:0)
老实说,开发人员需要把它变成一个简单的函数,就像在 MATLAB 中一样。
我对 Spyder 的临时解决方案:
这些坐标是您需要在下面的代码中替换的坐标。
import keyboard
from pynput.mouse import Button, Controller
#%% Clear Old Plots
#Selects the mouse as the controller
mouse = Controller()
#Record current mouse position
recmp = mouse.position
#Set pointer position on plots pane
mouse.position = (1136,370) # <-- replace coordinates here with yours!
#Opens the plot pane
keyboard.press_and_release('ctrl+shift+g')
#Click and release left mouse button
mouse.press(Button.left)
mouse.release(Button.left)
#Runs close all in the plots pane
keyboard.press_and_release('ctrl+shift+w')
#Resets mouse position to the original location
mouse.position = recmp
答案 6 :(得分:-2)
在* nix上,您可以使用killall
命令。
killall app
使用应用程序关闭窗口名称的每个窗口实例。
您也可以在python脚本中使用相同的命令
您可以使用os.system("bashcommand")
运行bashcommand。