python ग्रहण से चलते समय matplotlib में पूर्व-मौजूदा आंकड़े बंद करें




numpy pydev (2)

सामान्य ग्रहण मामले के लिए बीआई रिको का जवाब देखें।

किसी के लिए - मेरे जैसे - जो यहां पर उतरता है क्योंकि आपके पास बहुत सारी खिड़कियां हैं और आप उन्हें बंद करने के लिए संघर्ष कर रहे हैं, बस अपनी परिस्थितियों के आधार पर पाइथन को मारना प्रभावी हो सकता है। यह लगभग किसी भी परिस्थिति में काम करता है - ग्रहण सहित।

मैंने सिर्फ Emacs से 60 भूखंड पैदा किए (मैं ग्रहण करने के लिए पसंद करते हैं) और फिर मैंने सोचा कि मेरी लिपि निकल गई है। मेरी आईपीथॉन विंडो में close('all') चल रहा था मेरे लिए काम नहीं किया क्योंकि भूखंड आईपीथॉन से नहीं आए थे, इसलिए मैंने पाइथन प्रक्रियाओं को चलाने की कोशिश की।

जब मैंने स्क्रिप्ट चलाने वाले दुभाषिया को मार दिया, तो सभी 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

ध्यान दें कि मैंने अपने आईपीथॉन / पिलैब को नहीं मारा, और न ही मैंने अद्यतन प्रबंधक को मार दिया (अद्यतन प्रबंधक को मारना शायद एक बुरा विचार है) ...

मेरा सवाल सरल है: मेरे पास एक पायथन स्क्रिप्ट है जो matplotlib का उपयोग कर आंकड़े उत्पन्न करती है। हर बार जब मैं इसे चलाता हूं तो यह आंकड़ों के साथ नई खिड़कियां उत्पन्न करता है। मेरे पास स्क्रिप्ट बंद खिड़कियां कैसे हो सकती हैं जो पिछले बार खोले गए थे?

matlab में समान कमांड आपके matlab स्क्रिप्ट की शुरुआत में 'सभी बंद करें' रखना है।

मैंने कुछ ऐसा करने के लिए कई सुझाव देखे हैं

import matplotlib.pyplot as plt
plt.close("all")

यह समाधान काम करता है यदि आप अपनी स्क्रिप्ट को अजगर खोल से चलाते हैं, उदाहरण के लिए

>>>> execfile("myScript.py")

हालांकि, मैंने पाया है कि अगर मैं एक्लिप्स / पायडेव का उपयोग करके स्क्रिप्ट चलाता हूं तो यह काम नहीं करता है। ग्रहण में काम करने के लिए मैं इसे कैसे प्राप्त कर सकता हूं?

उदाहरण:

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") को कॉल करके सभी खुले आंकड़े भी बंद कर सकते हैं





pydev