私はパラメータ設定が正しいかどうかをチェックする必要があるので、たくさんのプロットを描く必要があります。これらのプロットを描画するには、matplotlibを使用することを選択します。それぞれのチェックの後、左上にある閉じるボタンをクリックする必要があります。それは簡単です。だから、約3〜5秒でプロットを表示させ、クリックせずに自動的に閉じることができる方法はありますか?私はplt.close()
について知っていますが、動作しません。ここに私のコードです。matplotlibで図を表示して自動的に閉じますか?
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()
。 – tacaswell
@tacaswell 'time.sleep(3)'の代わりに 'plt.pause(3)'を使うことを意味しますが、私がそれに置き換えられた場合、端末*/usr/local/lib/python2にいくつか警告があります。 7/dist-packages/matplotlib/backend_bases.py:2437:MatplotlibDeprecationWarning:このGUI固有の関数が実装されるまで、デフォルトイベントループを使用します。 warnings.warn(str、mplDeprecation)、ここで何が問題ですか? – zmwang