2012-12-31 69 views
3

我有以下的代碼,提出了四個次要情節的一個人物:Python的次要情節留出空間,共同軸標籤

f = figure(figsize=(7,7)) 
f.add_axes([0.2,0.175,0.75,0.75]) 
f.subplots_adjust(left=0.15) 
f.clf() 
ax = f.add_subplot(111) 
ax1 = f.add_subplot(221) 
ax2 = f.add_subplot(222) 
ax3 = f.add_subplot(223) 
ax4 = f.add_subplot(224) 
ax.xaxis.set_major_formatter(NullFormatter()) 
ax.yaxis.set_major_formatter(NullFormatter()) 
ax2.xaxis.set_major_formatter(NullFormatter()) 
ax2.yaxis.set_major_formatter(NullFormatter()) 
ax1.xaxis.set_major_formatter(NullFormatter()) 
ax4.yaxis.set_major_formatter(NullFormatter()) 
f.subplots_adjust(wspace=0,hspace=0) 

ax1.plot(tbins[0:24], mean_yszth1, color='r', label='mean', marker='.', lw=3) 
ax2.plot(tbins[0:24], mean_ysz1, color='r', label='mean', marker='.', lw=3) 
ax3.plot(tbins[0:24], mean_yszth2, color='r', label='mean', marker='.', lw=3) 
ax4.plot(tbins[0:24], mean_ysz2, color='r', label='mean', marker='.', lw=3) 

ax1.set_xlim(0,12) 
ax1.set_ylim(-0.5,0.5) 
ax2.set_xlim(0,12) 
ax2.set_ylim(-0.5,0.5) 
ax3.set_xlim(0,12) 
ax3.set_ylim(-0.5,0.5) 
ax4.set_xlim(0,12) 
ax4.set_ylim(-0.5,0.5) 
ax.set_xlabel(r"$\mathrm{Time\ since\ last\ merger\ (Gyr)}$") 
ax.set_ylabel(r"$\mathrm{\Delta Y_{SZ}/Y_{SZ}}$") 

結果看起來是這樣的:

正如你所看到的,軸標籤與刻度重疊。我想將公共軸標籤從軸稍微移開。我無法弄清楚如何最好地做到這一點。的set_ylabelset_xlabel方法

回答

3

使用labelpad參數:

Definition: ax.set_ylabel(self, ylabel, fontdict=None, labelpad=None, **kwargs) 
Docstring: 
Call signature:: 

    set_ylabel(ylabel, fontdict=None, labelpad=None, **kwargs) 

Set the label for the yaxis 

*labelpad* is the spacing in points between the label and the y-axis 

這就是我與labelpad設置爲50(X)和60(Y)。當使用默認配置時,我必須手動修改圖邊距,因爲標籤在圖框外。

enter image description here

編輯
從您的意見,似乎你可以使用一個很老的版本matplotlib的。 Labelpad參數在很多版本之前都在matplotlib中,但設置它的方式可能不同(我不知道)。
在我發現some comments指向這個用法網站:

ax.xaxis.LABELPAD = 8 # default is 5 

還我已經看到了希望:

ax.xaxis.labelpad = 8 
+0

這是我做過什麼:'ax.set_ylabel(ylabel,labelpad = 10 )'。但是我收到一個錯誤,提示'Unknown property labelpad'。也許我的Python版本太舊了? – mcglashan

+0

你正在使用哪個版本?它適用於我在mpl vs 1.2.0(windows 7 64bit)上的圖形設置。但我認爲這個參數也可以在以前的版本中工作(至少mpl 0.99.1) – joaquin

+0

它說頂部是Python 2.5.4。我還在錯誤信息中找到了這一行:'set_xlabel(self,xlabel,fontdict,** kwargs)'中的'/scisoft/lib/python2.5/site-packages/matplotlib/axes.pyc'。看起來在我使用的版本中沒有標籤板。 – mcglashan