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