刻度线在Matplotlib的辅助x轴上消失

时间:2014-11-08 00:04:47

标签: python matplotlib

我有一个有两个x轴的情节。我的顶部x轴有11个刻度标记,定义如下:

plt.xticks([0 , 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 , 100])

然后,我的第二个x轴刻度标记定义如下:

par2.xaxis.set_ticklabels([0, r'$1.5\times 10^{8}' , r'$1.5\times10^{9}' , r'$7.3\times10^{9}' , 
r'$2.4\times10^{10}', r'$6.1\times10^{10}' , r'$1.2\times10^{11}', r'$2.0\times10^{11}', 
r'$2.9\times10^{11}', r'$3.6\times10^{11}', 0])

如果我在代码中首先定义了第一个x轴刻度线,那么我会在顶部x轴上获得所有刻度线,但不会在底部获得,如下所示: Plot with all the tick marks on first x-axis

如果我将代码中的plt.xtics移动到下面为第二个x轴定义刻度线的位置,那么我得到辅助轴上的所有刻度线而不是第一个刻度线,如下所示:

Plot with all the tick marks on the second axis and not on the first

任何人都可以帮助我理解为什么会发生这种情况以及如何让我的所有刻度线显示出来吗?

1 个答案:

答案 0 :(得分:0)

我不确定为什么会这样,但我认为这与新轴的默认值有关。我要做的是复制第一轴的刻度数(我打电话给 par1 ):

TicksNum = len(par1.xaxis.get_major_ticks())
par2.xaxis.set_major_locator(MaxNLocator(nbins = TicksNum) )
par2.xaxis.set_ticklabels([0, r'$1.5\times 10^{8}', r'$1.5\times10^{9}', r'$7.3\times10^{9}', r'$2.4\times10^{10}', r'$6.1\times10^{10}', r'$1.2\times10^{11}', r'$2.0\times10^{11}', r'$2.9\times10^{11}', r'$3.6\times10^{11}', 0])