我正在使用Spyder环境。绘图后,我放置了savefig函数。但这并未将图保存在相关文件夹中。
部分代码-
for t in range(1,int(TotT/dt)):
plt.clf()
v2_a=(dt*1E-15)*f(x2[-1],v2[-1]) # Heat Bath for site 2. Time step converted to fs.
v2_b=(dt*1E-15)*f(x2[-1]+(dt*1E-15)*v2[-1],v2[-1]+v2_a)
v2_next=v2[-1]+0.5*(v2_a+v2_b)
x2_a=(dt*1E-15)*v2[-1]
x2_b=(dt*1E-15)*(v2[-1]+v2_a)
x2_next=x2[-1]+0.5*(x2_a+x2_b)
v2.append(v2_next)
x2.append(x2_next)
E2=Lambda*x2[-1]
prop_tdep=np.zeros([720,720],dtype=complex)
np.fill_diagonal(prop_tdep[:360,:360],1)
np.fill_diagonal(prop_tdep[360:,360:],np.exp(-1j*E2*dt/hbar))
prop_1=np.matmul(prop_tdep,psi[:,t-1]) #First multiplication in time propagation
psi[:,t]=np.matmul(prop_0,prop_1)
if t%int(1/dt)==0:
plt.plot(prob_dens(np.fft.fftshift(psi[:360,t])),'xkcd:forest green')
plt.title("Elapsed time = %s fs"%(t*dt))
plt.xlabel("~Angular Momentum",size=18)
plt.ylabel("Probability density",size=16)
plt.tick_params(axis='both', labelsize=14,which='both')
plt.tick_params(direction='in', length=7, width=1.1, colors='k',which='major')
plt.tick_params(direction='in', length=4, width=1.1, colors='k',which='minor')
#plt.axes().yaxis.set_minor_locator(MultipleLocator(0.1))
#plt.axes().xaxis.set_minor_locator(MultipleLocator(30))
plt.savefig("FT_2states_dyn_withBath-%04d"%(t*dt))
print((t*dt))
答案 0 :(得分:1)
您未指定要保存的格式。您可以通过将其附加到文件名来做到这一点,以便自动识别
plt.savefig("filename.png")
,或者,如果您不希望文件带有扩展名,则可以将其指定为参数。
plt.savefig("filename", format="png")
答案 1 :(得分:1)
按照此处的建议 (https://stackoverflow.com/a/49165652/3745353) 在 plt.close()
之后添加 plt.savefig(...)
对我有用。我假设它会在文件中打开一个图形设备,但在 IDE 中关闭它之前不会保存它(类似于 R
中的图形设备)。