2010-06-03 106 views

回答

28

它看起來像matplotlib尊重這些設置rcParams:

pylab.rcParams['xtick.major.pad']='8' 
pylab.rcParams['ytick.major.pad']='8' 

設置你所創建的任何數字之前,你應該罰款。

我已經看過源代碼,並沒有出現任何其他方式來以編程方式設置它們。 (tick.set_pad()看起來像試圖做正確的事情,但填充似乎是在構建了Ticks並且在此之後無法更改時設置的。)

13

這可以使用set_pad來完成,但是您那麼必須重新設置標籤...

for tick in ax.get_xaxis().get_major_ticks(): 
    tick.set_pad(8.) 
    tick.label1 = tick._get_text1() 
+4

我建議這裏的醜陋有點不相干,這仍然是一個很好的解決方案。有很多情況下,你不只是在同一個數字上繪製一個情節。這意味着rcParams不是解決方案,因爲您想避免全局設置。 – MikeGM 2014-02-25 14:20:39

+0

@MikeGM:回想起來,我贊同你提到的原因。我會把我的描述看作醜陋的,儘管標籤重置並不完美。感謝您的評論。 – tom10 2014-08-26 02:07:15

42

如果你不想全局性地更改間隔(通過編輯rcParams),並希望有一個更簡潔的方法,試試這個:

ax.tick_params(axis='both', which='major', pad=15)

或僅適用於x軸

ax.tick_params(axis='x', which='major', pad=15)

+3

這比通過單個繪圖的嘀嗒聲迭代要容易得多。謝謝!對於單軸,你也可以使用:'ax.xaxis.set_tick_params(pad = n)' – jonchar 2015-09-02 19:48:50

+0

對於一個沒有經驗的讀者來說,理解ax是什麼是相當困難的。如果我用ax = plt.gca()得到它,那麼該命令只會移動標籤。 – 2017-12-05 14:52:35

相關問題