正负离子势能随距离的变化曲线,如下图:
直接上代码:
#!/usr/bin/env python
#coding=utf-8
'''
Created on 2013年10月12日
@author: yanghl
正负离子势能随距离的变化
'''
import numpy as np
import matplotlib.pylab as plt
x = np.linspace(1e-10, 1.0, 1000)
E_N = -1.436/x+5.86e-6/x**9
Emin = min(E_N)
x1 = np.linspace(1e-10,0.279,1000)
Emin = [Emin for i in x1]
plt.plot(x,-1.436/x+5.86e-6/x**9,x,-1.436/x,':',x,5.86e-6/x**9,'-.',linewidth=3)
plt.legend(['$E_N$','$E_A$','$E_R$'])
plt.plot(x1,Emin,'--',linewidth=2.5)
E0 = np.linspace(-6,-4.575,1000)
x0 = [0.279 for i in E0]
plt.plot(x0,E0,'--',linewidth=2.5)
plt.plot(0.279,-4.579,'o')
plt.annotate('$r_0=0.279nm,E_0=-4.575eV$', xy=(0.279,-4.575), xytext=(0.25, -2.0),
arrowprops=dict(facecolor='black', shrink=0.05))
plt.text(0.6, -4, r'$E_A = \frac{5.86*10^{-6}}{x^9},E_R=\frac{-1.436}{x}$', fontsize=15)
plt.text(0.6, -5, r'$E_N = E_A + E_R$', fontsize=15)
plt.axis([0,1.0,-6,6])
plt.grid()
plt.title(u'$E_N,E_A,E_R$随直径$r$从$0nm$到$1.0nm$的变化曲线', fontsize=16,fontproperties='STSong')
plt.xlabel('$r(nm)$')
plt.ylabel('$E(eV)$')
plt.savefig('atomic')
plt.show()