[英]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.