[英]Plot city names for lon,lat coordinates
我想使用底图包将城市的名称绘制到德国地图上。 我指定了经度和纬度值:
Cname=Form_Cities["name"].values
Clat=Form_Cities["lat"].values
Clon=Form_Cities["lon"].values
此外,
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)
与:
ax.annotate(s=Cname,xy=(Clon,Clat),xycoords="axes pixels")
我想绘制城市名称,但无法正常工作,但返回异常
ValueError:对象对于所需数组而言太深
您必须循环绘制城市名称和标记:
...
# 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)
...
我已经这样解决了:
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)
但是我仍然不明白为什么我必须使用map(Clon,Clat)转换x和y坐标,因为实际上Clon和Clat必须表示llcrnrlon左下角地理经度和llcrnrlat如果我遵循,则左下角地理纬度值底图方法的语法:
mpl_toolkits.basemap.Basemap(llcrnrlon =无,llcrnrlat =无,urcrnrlon =无,urcrnrlat =无,llcrnrx =无,llcrnry =无,urcrnrx =无,urcrnry =无,宽度=无,高度=无,投影=' ',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 =无,o_lat_p =无,k_0 =无,no_rot =假,抑制=抽动=真,卫星高度= 35786000,边界lat =无,fix_aspect =真,锚='C',天体=假,圆=假,epsg =无,斧=没有)
但我没有这样做:
Clat=Form_Cities["lat"].values
Clon=Form_Cities["lon"].values
还是我错了?
可以请任何人向我解释一下吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.