Eclipse에서 사용할 때 matplotlib의 기존 그림 닫기
내 질문은 간단합니다. matplotlib를 사용하여 그림을 생성하고 제공합니다. 때마다 그림이있는 새 창이 생성됩니다. 확장가 이전에 실행 실행될 때 열린 창을 닫으십시오.
matlab의 시작 부분에 모두 '모두 닫기'를 준비합니다.
나는 다음과 같은 몇 가지 제안을 보았습니다.
import matplotlib.pyplot as plt
plt.close("all")
이 솔루션은 설치 쉘에서 펼쳐지는 경우 실행됩니다.
>>>> execfile("myScript.py")
그러나 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()
이 멋진 3 상 전원 공급 장치에 이런 식을 그려야합니다.
다음과 같이를 호출하여 그림을 닫을 수 있습니다 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)
다음을 호출하여 열려있는 모든 그림을 닫을 수도 있습니다. matplotlib.pyplot.close("all")
일반적인 이클립스 사례에 Bi Rico의 답변을 참조하십시오.
나처럼 창문이 많고 창문을 모두 닫으려고 애 쓰고 있기 때문에 여기에 온 사람에게는 상황에 따라 할 수 있습니다. Eclipse를 포함하여 거의 모든 상황에서 작동합니다.
방금 emacs에서 60 개의 제안을 생성하고 (이클립스보다 선호 함) 펼쳐서 종료했습니다. close('all')
플롯이 ipython에서 오지 않았기 때문에 내 ipython에서 창 실행 하면 작동하지 않았으므로 실행중인 파이썬 프로세스를 찾아야했습니다.
펼쳐지는 인터프리터를 죽였을 때 60 개의 모든 것이 닫혔습니다.
$ ps aux | grep python
rsage 11665 0.1 0.6 649904 109692 ? SNl 10:54 0:03 /usr/bin/python3 /usr/bin/update-manager --no-update --no-focus-on-map
rsage 12111 0.9 0.5 390956 88212 pts/30 Sl+ 11:08 0:17 /usr/bin/python /usr/bin/ipython -pylab
rsage 12410 31.8 2.4 576640 406304 pts/33 Sl+ 11:38 0:06 python3 ../plot_motor_data.py
rsage 12431 0.0 0.0 8860 648 pts/32 S+ 11:38 0:00 grep python
$ kill 12410
ipython / pylab을 죽이지 갑자기 고 업데이트 관리자도 죽이지 않을 (업데이트 관리자를 죽이는 것은 아마도 나쁜 생각 일 것입니다).
모든 플롯 창뿐만 아니라 실행중인 현재 스크립트를 제외하고 python3이라고하는 모든 프로세스를 종료합니다. python3에서 작동합니다. 따라서 다른 python3 스크립트를 실행중인 경우 종료됩니다. 한 번에 하나의 스크립트 만 실행하기 때문에이 작업을 수행합니다.
import os
import subprocess
subprocess.call(["bash","-c",'pyIDs=($(pgrep python3));for x in "${pyIDs[@]}"; do if [ "$x" -ne '+str(os.getpid())+' ];then kill -9 "$x"; fi done'])
'ProgramingTip' 카테고리의 다른 글
py.test 테스트 내에서 로깅 (0) | 2020.11.28 |
---|---|
추가해야하는 이유 (0) | 2020.11.28 |
Coq에 비해 Isabelle 증명 보조의 강점과 약점은 무엇입니까? (0) | 2020.11.28 |
Python에서 ''.join ()이 + =보다 빠른 이유는 무엇입니까? (0) | 2020.11.28 |
Serializer의 create () 및 ModelViewset의 create () perform_create () 사용시기 (0) | 2020.11.28 |