Q:

Plot city names for lon,lat coordinates

I want to plot the names of cities onto a map of germany using the Basemap package.
I have specified the longitude and latitide values with:
Cname=Form_Cities["name"].values    
Clat=Form_Cities["lat"].values
Clon=Form_Cities["lon"].values

furthermore, 
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)

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

I want to plot the city names but it isnt working but returns the exception

ValueError: object too deep for desired array

A:

You have to plot city names and markers for it in a cycle:
...
# 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)
...

A:

I have solved it like this:
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)

but I still dont get why I have to transform the x and y coordinates with map(Clon,Clat) because actually Clon and Clat must represent the 
llcrnrlon   The lower left corner geographical longitude and
llcrnrlat   The lower left corner geographical latitude values if I follow the syntax of the Basemap method:

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)

but havent't I done this with:
Clat=Form_Cities["lat"].values
Clon=Form_Cities["lon"].values

or am I wrong?
Can please anyone explain this to me?

