【发布时间】:2019-06-13 23:18:02
【问题描述】:
我正在使用 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))
【问题讨论】:
-
您的工作目录可能不是您认为的那样,要么在 spyder 终端上执行
%pwd以查看您的位置,要么在savefig中使用完整路径而不是相对路径 -
我尝试了 %pwd 命令并显示了我想要保存它的确切目录。
-
尝试完整路径以确定,我仍然怀疑
-
试过 plt.savefig("/Users/atreyamajumdar/Desktop/Quantum Yield/FT_2states_dyn_withBath-%04d"%(t*dt)) 还是一样的问题。您认为这可能与 spyder 如何在内部保存数字有关吗?
标签: python matplotlib spyder