2013-12-12 2 views
8
from mpl_toolkits.basemap import Basemap 
import matplotlib.pyplot as plt 
import numpy as np 

m = Basemap(projection='cyl',resolution='c',area_thresh=10,llcrnrlon=-180,urcrnrlon=180,\ 
    llcrnrlat=-90,urcrnrlat=90) 
m.etopo() 

실제로 스케일 바를 표시하는 데 필요한 lat, lon, lat0 및 lon0 매개 변수를 제공하는 방법을 알지 못했습니다. 그들을 어떻게 제공합니까? 다음과 같이matplotlib basemap의 스 케일 바 사용하기

http://matplotlib.org/basemap/api/basemap_api.html에서

map.drawmapscale(????,barstyle='simple',units='km',fontsize=9,labelstyle='simple',fontcolor='k') 

튜토리얼 는 그것을 설명 : 누군가가 나를 도울 수 있다면

drawmapscale(lon, lat, lon0, lat0, length, barstyle='simple', units='km', fontsize=9, yoffset=None, labelstyle='simple', fontcolor='k', fillcolor1='w', fillcolor2='k', ax=None, format='%d', zorder=None) 

감사하겠습니다. (그리고 아마도 다른 사람, 나는 단지 projection='cyl'을 확인하고 projection='moll')

+2

올바른 값을 입력하면 다음을 실행할 수 있습니다. 'ValueError : projection ='cyl ''의지도 배율을 그릴 수 없습니다. 당신은도 단위로 킬로미터 단위의 척도를 만들 수 없습니다. km 단위의 길이는 모든 위치마다 다릅니다. –

+0

@ Rutger Kassies ok 그렇다면 학위를 단위로 사용하여 스케일 바를 그리는 예제를 보여줄 수 있습니까? – 2964502

+1

'drawmeridians'와'drawparallels'를 통해 눈금 선을 추가하는 것이 도의 눈금 막대보다 더 유용 할 것입니다. –

답변

5

drawmapscaleprojection='cyl'Basemap 인스턴스를 지원하지 않는 것 같습니다 :

이 다음과 같은 오류가 발생
In [7]: m = Basemap(projection='cyl',resolution='c',area_thresh=10,llcrnrlon=-180,\ 
        urcrnrlon=180, llcrnrlat=-90,urcrnrlat=90) 

In [8]: m.etopo() 
Out[8]: <matplotlib.image.AxesImage at 0x10a899e90> 

In [10]: m.drawmapscale(50, -75, 0, 0, 400) 

:

ValueError: cannot draw map scale for projection='cyl' 

그러나 drawmapscale이 다른 예측에 적용됩니다. 예를 들어, Mollweide 사용 :

In [11]: m = Basemap(projection='moll', lon_0=0) 
In [12]: m.etopo() 
Out[12]: <matplotlib.image.AxesImage at 0x10c299450> 

In [13]: m.drawmapscale(50, -75, 0, 0, 400) 
Out[13]: 
[<matplotlib.lines.Line2D at 0x11d2e41d0>, 
<matplotlib.lines.Line2D at 0x109cd4d90>, 
<matplotlib.lines.Line2D at 0x11d2e4750>, 
<matplotlib.text.Text at 0x11d2e4d90>, 
<matplotlib.text.Text at 0x11d2e5610>] 

enter image description here

는 불행하게도 Basemap API이 모든 예측 작동하지에 대해 아무것도 언급하지 않는 것. 그러나 here은 잠재적 인 해결 방법 인 것으로 보입니다.