1

J'ai besoin de tracer des données sur une carte de la ville d'Amsterdam, mais je ne peux pas obtenir Basemap pour afficher l'intrigue appropriée. Avec le code ci-dessous, tout ce que je reçois est un complot vide et je ne sais pas comment afficher la carte.Python Basemap ne montre pas l'intrigue correcte

Mon code est ci-dessous:

from mpl_toolkits.basemap import Basemap 
import matplotlib.pyplot as plt 
%matplotlib inline 

#Create a map around Amsterdam 
#http://www.latlong.net/ 
#Upper Right Corner 52.4268763,5.2415393 
#Lower Left Corner 52.3303609,4.6992733 

#fig, ax = plt.subplots() 
m = Basemap(projection='merc', 
     llcrnrlat=52.3303609,urcrnrlat=52.4268763, 
     llcrnrlon=4.6992733, urcrnrlon=5.2415393, 
     resolution='c') 

m.fillcontinents() 
m.drawcoastlines() 
m.drawmapboundary() 
plt.show() 

Qu'est-ce que je manque dans mon code?

+1

Il vous manque la commande plot réelle - où si les données réelles de votre carte proviennent? –

+0

@Thomas Je suppose qu'il veut dire les côtes qui ne sont pas montrées. Des données supplémentaires doivent bien entendu être tirées séparément. – ImportanceOfBeingErnest

Répondre

2

La résolution que vous avez choisie pour le fond de carte, resolution='c', est "grossière", ce qui signifie que les côtes détaillées ne seront pas affichées. Vous pouvez utiliser l'une des autres résolutions possibles

l (low), i (intermediate), h (high), f (full) 

Exemple:

resolution="l":
enter image description here

resolution="i":
enter image description here

resolution="h":
enter image description here

resolution="f":
enter image description here

Code pour reproduire:

from mpl_toolkits.basemap import Basemap 
import matplotlib.pyplot as plt 

m = Basemap(projection='merc', 
     llcrnrlat=52.3303609,urcrnrlat=52.4268763, 
     llcrnrlon=4.6992733, urcrnrlon=5.2415393, 
     resolution="f") 

m.fillcontinents(color='bisque') 
m.drawcoastlines() 
m.drawmapboundary(fill_color='lightcyan') 

plt.show()