vue, puis fermez la figure automatiquement dans matplotlib?
Je dois vérifier si mes paramètres le réglage est bon, donc j'ai besoin de tirer beaucoup de parcelles, et le dessin d'une de ces parcelles, j'ai choisi d'utiliser matplotlib. Après chaque vérification, j'ai besoin de cliquez sur le bouton fermer dans le coin supérieur gauche de conner. Il est trivial. Donc, il y a une méthode qui peut faire le graphique montrent dans environ 3 ou 5 secondes et fermer automatiquement sans avoir à cliquer? Je sais que sur le plt.close()
, mais il ne fonctionne pas. Voici mon code.
from math import *
import sys
import numpy as np
from scipy import special
import matplotlib.pyplot as plt
x1=[]
y1=[]
x2=[]
y2=[]
x3=[]
y3=[]
with open('fort.222','r') as f:
for line in f:
a,b=line.split()
x1.append(float(a))
y1.append(float(b))
n=int(sys.argv[1])
i=0
with open('fort.777','r') as f:
for line in f:
if i==0:
k1=float(line)
i=i+1
x1,y1=np.array(x1),np.array(y1)
z1=special.eval_hermite(n,x1*k1)*sqrt(1/(sqrt(pi)*pow(2,n)*factorial(n)))*sqrt(k1)*np.exp(-np.power(k1*x1,2)/2.)
plt.figure()
plt.plot(x1,z1)
plt.plot(x1,y1)
plt.plot(x1,np.zeros(len(x1)))
plt.title('single center & double center')
plt.xlim(x1.min(),x1.max())
plt.ylim(-max(abs(y1.min()-0.1),y1.max()+0.1),max(abs(y1.min()-0.2),y1.max()+0.2))
plt.xlabel('$\zeta$'+'/fm')
plt.legend(('single, n='+sys.argv[1],'double, n='+sys.argv[1]),loc=2,frameon=True)
plt.show()
plt.close()
OriginalL'auteur zmwang | 2016-11-03
Vous devez vous connecter pour publier un commentaire.
Documentation sur
pyplot.show()
lit:Donc la solution est: est-ce
plt.pause(3)
serait mieux ici que les GUI boucle d'événement de courir si la figure est interactif.entendez-vous utiliser
plt.pause(3)
pour remplacertime.sleep(3)
, mais si je l'ai remplacé avec elle, j'ai eu quelques avertissements sur mon terminal*/usr/local/lib/python2.7/dist-packages/matplotlib/backend_bases.py:2437: MatplotlibDeprecationWarning: à l'Aide d'événement par défaut de la boucle jusqu'à ce que la fonction spécifique de l'interface utilisateur graphique est mise en œuvre des avertissements.avertir(str, mplDeprecation), quel est le problème ici?Vous pouvez également tracer sur le dessus du graphique précédent si vous supprimez
plt.close()
OriginalL'auteur Leon