2017-06-24 4 views
5

Ich möchte die Namen von Städten auf einer Karte von Deutschland mit dem Grundkarte-Paket plotten. Ich habe die Länge angegeben und latitide Werte mit:Plot Stadtnamen für lon, lat Koordinaten

Cname=Form_Cities["name"].values  
Clat=Form_Cities["lat"].values 
Clon=Form_Cities["lon"].values 

ferner

map=Basemap(projection="lcc",resolution="l",width=1E6,height=1E6,lon_0=9.9167,lat_0=51.5167,fix_aspect=False)#Resturn just the empty "figure with no conotents on it 
map.shadedrelief() 
map.drawcountries(color="black",zorder=1,linewidth=1) 

und mit:

ax.annotate(s=Cname,xy=(Clon,Clat),xycoords="axes pixels") 

Ich möchte die Stadtnamen zeichnen, aber es ist nicht funktioniert, aber kehrt die Ausnahme

ValueError: object too deep for desired array

Antwort

2

ich es so gelöst haben:

x,y=map(Clon,Clat) 
[ax.annotate(s=nme,xy=(xp,yp),color="gray",alpha=0.5,fontsize=6) for nme,xp,yp in zip(Cname,x,y) 

aber ich habe immer noch nicht, warum ich das x zu transformieren und y Koordinaten mit der Karte (Clon, Clat), da Clon und Clat eigentlich die llcrnrlon darstellen müssen. Die geographische Länge der unteren linken Ecke und llcrnrlat Die geographischen Breitenwerte der unteren linken Ecke, wenn ich der Syntax der Grundkartenmethode folge:

mpl_toolkits.basemap.Basemap(llcrnrlon=None, llcrnrlat=None, urcrnrlon=None, urcrnrlat=None, llcrnrx=None, llcrnry=None, urcrnrx=None, urcrnry=None, width=None, height=None, projection=’cyl’, resolution=’c’, area_thresh=None, rsphere=6370997.0, ellps=None, lat_ts=None, lat_1=None, lat_2=None, lat_0=None, lon_0=None, lon_1=None, lon_2=None, o_lon_p=None, o_lat_p=None, k_0=None, no_rot=False, suppress_ticks=True, satellite_height=35786000, boundinglat=None, fix_aspect=True, anchor=’C’, celestial=False, round=False, epsg=None, ax=None)

aber havent't ich dies getan, mit:

Clat=Form_Cities["lat"].values 
Clon=Form_Cities["lon"].values 

oder bin ich falsch?

Kann mir bitte jemand das erklären?

3

Sie müssen Stadtnamen und Marker für die es in einem Zyklus Grundstück:

... 
# convert your coords to map projection coords 
yp,xp = map(yp,xp) 
map.plot(xp, yp, 'ro', markersize=4) # plot markers 
for label, xpt, ypt in zip(point_lables, xp, yp): # add annotation (city names) 
    plt.text(xpt+0.5, ypt+0.01, label, color='firebrick', fontsize=7) 
... 
Verwandte Themen