2014-09-11 3 views
1

python에서 matplotlib/basemap을 사용하여 직교 투영에 평행선/경선 레이블을 지정하려고합니다. 베이스 맵 문서에 따르면 orth35 및 기타 투영에 대한 레이블 표시는 drawparalles(parallels,labeles=[left,right,top,bottom]) 명령으로 수행 할 수 없으므로 수동으로 수행해야합니다. 아무도 나에게 평행선/자오선을 수동으로 레이블링하는 방법을 제안 할 수 있습니까?python에서 matplotlib/basemap을 사용하여 직교 투영에 평행선/자오선을 레이블하는 방법

lon2,lat2=m1(lon,lat) 
lon3,lat3=m1(lon1,lat1) 
cax1=m1.pcolor(lon2,lat2,data1,cmap='jet') 
colob=plt.colorbar(fraction=0.05) 
colob.set_label(r"Diff. Flux $[cm^{-2}Sr^{-1}s^{-1}]$") 
parallels = np.arange(-90,90,15.) 
cax4=m1.drawparallels(parallels,labels=[1,0,0,0]) 
meridian = np.arange(0,360,15.) 
cax5=m1.drawmeridians(meridian,labels=[0,0,0,1]) 

답변

1

matplotlib.annotate 명령을 사용하여 해결책을 찾았습니다.

lon2,lat2=m1(lon,lat) 
lon3,lat3=m1(lon1,lat1) 
cax1=m1.pcolor(lon2,lat2,data1,cmap='jet') 
colob=plt.colorbar(fraction=0.05) 
colob.set_label(r"Diff. Flux $[cm^{-2}Sr^{-1}s^{-1}]$") 
parallels = np.arange(-90,90,15.) 
cax4=m1.drawparallels(parallels,labels=[1,0,0,0]) 
meridian = np.arange(0,360,15.) 
cax5=m1.drawmeridians(meridian,labels=[0,0,0,1]) 
for i in np.arange(len(meridian)): 
    plt.annotate(np.str(meridian[i]),xy=m1(meridian[i],0),xycoords='data') 
for i in np.arange(len(parallels)): 
    plt.annotate(np.str(parallels[i]),xy=m1(180,parallels[i]),xycoords='data')