2013-12-12 3 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() 

वास्तव में, मुझे नहीं पता था कि स्केल-बार दिखाने के लिए आवश्यक लैट, लॉन, लैट 0 और लोन पैरामीटर प्रदान करने के बारे में मुझे नहीं पता था। उन्हें कैसे प्रदान करें?matplotlib basemap

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

ट्यूटोरियल

http://matplotlib.org/basemap/api/basemap_api.html पर इस प्रकार के रूप में वर्णन: अगर किसी ने मुझे मदद कर सकता है

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) 

सराहना करेंगे।

+2

यदि आप सही मूल्य प्रदान करेंगे तो आप इसमें भाग लेंगे: 'ValueError: प्रक्षेपण = 'cyl'' के लिए मानचित्र स्केल नहीं खींच सकता है। आप डिग्री में नक्शे के लिए किलोमीटर में स्केल नहीं कर सकते हैं, प्रत्येक स्थान पर एक किमी की लंबाई अलग है। –

+0

@ रटर कैसीज ठीक है तो क्या आप मुझे यूनिट के रूप में डिग्री का उपयोग करके स्केलबार ड्राइंग का एक उदाहरण दिखा सकते हैं? – 2964502

+1

'ड्रमरिडियन 'और' ड्रापरेलल्स 'के माध्यम से ग्रिडलाइन जोड़ना डिग्री के लिए स्केल बार से अधिक सहायक होगा। –

उत्तर

5

ऐसा लगता है कि drawmapscaleprojection='cyl' साथ Basemap उदाहरणों का समर्थन नहीं करता है (और संभवतः दूसरों, मैं केवल projection='cyl' जाँच की है और projection='moll'):

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 एक संभावित कामकाज प्रतीत होता है।