2012-12-31 3 views
3

나는이 하나의 그림에서 네 줄거리를 만드는 다음 코드를 파이썬 줄거리는 레이블

당신이 볼 수 있듯이, 축 :

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 

이것은 내가 50 (x)와 60 (Y)로 설정 labelpad로 무엇을 얻을 수 있습니다. 기본 구성을 사용할 때 레이블이 그림 프레임 외부에 있었으므로 수동으로 그림 여백을 수정해야했습니다.

enter image description here

편집 귀하의 의견에서
을 당신이하기 matplotlib의 아주 오래된 버전을 사용 할 수있는 것 같다. Labelpad 매개 변수는 여러 버전 전부터 matplotlib에 있었지만 설정 방법은 다를 수 있습니다 (확실하지 않습니다). 나는이 사용을 가리 some comments있는 웹에서
: 그것은

ax.xaxis.LABELPAD = 8 # default is 5 

는 내가 본을 좋아한다 :`ax.set_ylabel (ylabel, labelpad = 10 :

ax.xaxis.labelpad = 8 
+0

이 내가 무슨 짓을)'. 하지만 '알 수없는 속성 labelpad'오류가 발생합니다. 파이썬의 제 버전이 너무 오래되었을 수도 있습니다. – mcglashan

+0

어떤 버전을 사용하고 있습니까? 그것은 mpl vs 1.2.0 (윈도우 7 64 비트)에서 그림 설정과 함께 나를 위해 작동합니다. 하지만이 매개 변수는 이전 버전에서도 작동해야한다고 생각합니다. (적어도 mpl 0.99.1) – joaquin

+0

맨 위에는 Python 2.5.4가 나와 있습니다. 나는 또한 오류 메시지에서이 줄을 발견했다 :'/scisoft/lib/python2.5/site-packages/matplotlib/axes.pyc in set_xlabel (self, xlabel, fontdict, ** kwargs)'. 내가 사용하고있는 버전에 라벨이없는 것 같습니다. – mcglashan