0
我正在使用matplotlib创建一个子图,其中顶部x轴与底部x轴不同。我自己将xticks和xlabels添加到顶部。matplotlib中的刻度标记
我想在那里有xtick标记对应底部的x轴在中间和顶部子图的底部,其中xticks指向外部(或下部) - 就像在底部一样。有没有办法做到这一点?
这是我使用至今定制蜱代码:
f, (ax1, ax2, ax3) = plt.subplots(3, sharex=False, sharey=False)
f.subplots_adjust(hspace=0)
plt.setp([a.get_xticklabels() for a in f.axes[:-1]], visible=False)
ax3.get_xaxis().set_tick_params(direction='out', top='off', which='both')
ax2.get_xaxis().set_tick_params(direction='out', bottom='on', top='off', which='both')
ax1.minorticks_off()
ax1.get_xaxis().tick_top()
ax1.set_xticks([np.divide(1.0,100.0), np.divide(1.0,50.0), np.divide(1.0,35.0),
np.divide(1.0,20.0), np.divide(1.0,10.0), np.divide(1.0,5.0),
np.divide(1.0,3.0), np.divide(1.0,2.0), np.divide(1.0,1.0)])
ax1.set_xticklabels([100, 50, 35, 20, 10, 5, 3, 2, 1])
我发现,自从我做了定制xticks为顶级情节,我不能做到这一点,并指定方向在底部子图中'出'会遗弃中间的刻度线。由于子图之间没有空间,所以底部图的顶部与中间子图的底部共享其x轴......
有没有解决方法?
我不能得到这个工作。你能提供一个例子吗?这只是改变轴的绘制顺序。问题是中间图需要刻度标记,它们在底部向外,但在顶部向内。 – grover
我只是将这些行添加到您发布的脚本的底部。绘图顺序应该足以让中间图底部的刻度可见。对于顶行,您可以使用axvline和位置列表。 – Elliot