相关疑难解决方法(0)

查看然后在matplotlib中自动关闭图形?

我必须检查我的参数设置是否正确,所以我需要绘制很多图,并且为了绘制这些图,我选择使用matplotlib.每次检查后,我都需要点击左上角的关闭按钮.这是微不足道的.那么是否有任何方法可以使情节显示在大约3或5秒内并自动关闭而不点击?我知道plt.close(),但它不起作用.这是我的代码.

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()
Run Code Online (Sandbox Code Playgroud)

python matplotlib

8
推荐指数
1
解决办法
2万
查看次数

matplotlib close 不会关闭窗口

我注意到当我运行时:

import pylab as pl
pl.ion()
# Plot something
pl.show()
pl.close()
Run Code Online (Sandbox Code Playgroud)

最后一条语句没有完全关闭图。图形变暗,内容消失,但图形一直显示在屏幕上,直到我退出 IPython,如下所示

                      在此处输入图片说明

我在 Linux 64 位上使用 Anaconda 发行版使用最新稳定版本的 matplotlib ( 1.3.1 ),并且我使用ssh -X.

我使用的后端如下:

backend : QT4Agg
backend.qt4 : PySide
Run Code Online (Sandbox Code Playgroud)

python matplotlib conda

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

matplotlib ×2

python ×2

conda ×1