2017-04-18 3 views
1

5 개의 맵이 있습니다. 하나의 그림으로 플롯하려고합니다. 내가 그들을plt.subplot2grid()를 사용할 때 Basemap 서브 플로트 사이의 빈 공간을 줄이는 방법

1 2 3 
4 5 

이렇게하려면처럼 배치 할 싶습니다, 나는 여기에 주어진 대답에 따라 시도 : Position 5 subplots in Matplotlib

이 나에게 올바른 레이아웃을 제공합니다,하지만 빈 공간의 톤이있다 subplots 사이에 남았습니다.

#S,W,N,E Bounds 
lonMin = 119 
lonMax = 124 
latMin = 12 
latMax = 19 

m = Basemap(llcrnrlon=lonMin,llcrnrlat=latMin,urcrnrlon=lonMax,urcrnrlat=latMax, projection = 'cea', resolution = 'i') 

fig = plt.figure() 
axes = [plt.subplot2grid(shape=(2,6), loc=(0,0), colspan=2), 
     plt.subplot2grid((2,6), (0,2), colspan=2), 
     plt.subplot2grid((2,6), (0,4), colspan=2), 
     plt.subplot2grid((2,6), (1,1), colspan=2), 
     plt.subplot2grid((2,6), (1,3), colspan=2)] 
for i in range(5): 
    m.ax = axes[i] 
    m.drawcoastlines() 
fig.suptitle('Title', fontsize = 20, fontweight = 'bold') 

enter image description here

은 어떻게 줄거리 사이의 간격을 줄일 수있다?

편집 : 문제는 어떻게 든 플롯에베이스 맵을 넣는 것과 관련이있는 것으로 보입니다. 나는 m.drawcoastlines() 호출을 주석 경우, 축이 잘되는, 다음과 같이 : 모든 enter image description here

답변

0

먼저 당신이 중복을 최소화하기 위해 줄거리 사이의 간격을 조정하는 plt.tight_layout() 전화를 시도 할 수 있습니다.

또 다른 방법은 수동으로

fig.subplots_adjust(hspace=.1) # height spaces 
fig.subplots_adjust(wspace=.1) # width spaces 

이 기능은 모든 줄거리에 영향을 미치는처럼 모든 공간을 설정하는 subplots_adjust을 사용하는 것입니다. 더 많은 제어가 필요하면 GridSpec을 사용하십시오.

+0

이들 중 어느 것도 트릭을 수행하지 않았습니다. plt.tight_layout()은 주위 빈 공간을 없애고 플롯 간의 공간을 제거합니다 (또한 그림과 제목이 겹치게됩니다). 그리고 fig.subplots_adjust()는 아무것도 변경하지 않았습니다. – hm8

+0

Nevermind .... 나는'subplots_adjust()'를 사용했지만 hspace/wspace 값을 작은 음수로 설정해야만했다. – hm8