我想绘制第二个x轴,但在我的情况下,在第二个x轴上绘制的数量来自第一个x轴上的数量,并具有非线性变换。我有以下代码:
import numpy as np
import matplotlib.pyplot as plt
c=299792458
lL=1064*10**(-9) # m
omL = 2.0*np.pi*c/lL # 1/s
n=2.0
delp = 2.0*np.pi
dela = np.linspace(0.0, delp/n, 300)
d = delp/(omL/c)/n #m
ka = dela/d #1/m
ma = np.sqrt((omL/c)**2-ka**2) #1/m
maEV= ma* 197*10**(-9) #eV
BL = dela/delp
fig = plt.figure(1)
ax1 = fig.add_subplot(111)
ax2 = ax1.twiny()
ax1.set_xlabel(r'$ x$', fontsize=18)
ax1.set_ylabel(r'$y$', fontsize=18)
ax1.plot(maEV,np.absolute(BL),label=r'$j$')
plt.title(r"n="+str(n),fontsize=16)
plt.tight_layout()
lab = [0,1,2,3]
squad = [str(delp/n/np.pi),'0']
ax2.set_xticks(lab)
ax2.set_xticklabels(squad, minor=False)
ax2.set_xlabel(r"$\delta_a[\pi]$")
plt.legend()
plt.savefig("test.pdf")
什么给出以下输出
问题在于,下部x轴上的“ 0”应属于上部x轴上的“ 1.0”。但这显然不是事实……我该如何改变这一点并系统地产生上x轴的刻度?