2Ob*_*Obe 5 python matplotlib matplotlib-basemap
我想使用Basemap包将城市名称绘制到德国地图上.我已经指定了经度和latitide值:
Cname=Form_Cities["name"].values
Clat=Form_Cities["lat"].values
Clon=Form_Cities["lon"].values
Run Code Online (Sandbox Code Playgroud)
此外,
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)
Run Code Online (Sandbox Code Playgroud)
与:
ax.annotate(s=Cname,xy=(Clon,Clat),xycoords="axes pixels")
Run Code Online (Sandbox Code Playgroud)
我想绘制城市名称,但它不起作用但返回异常
ValueError:对象太深,不适合所需的数组
我已经这样解决了:
\n\nx,y=map(Clon,Clat)\n[ax.annotate(s=nme,xy=(xp,yp),color="gray",alpha=0.5,fontsize=6) for nme,xp,yp in zip(Cname,x,y)\nRun Code Online (Sandbox Code Playgroud)\n\n但我仍然不明白为什么我必须用 map(Clon,Clat) 转换 x 和 y 坐标,因为实际上 Clon 和 Clat 必须表示 \nllcrnrlon 左下角地理经度和 \nllcrnrlat 左下角地理纬度值,如果我遵循 Basemap 方法的语法:
\n\n\n\n\nmpl_toolkits.basemap.Basemap(llcrnrlon=无, llcrnrlat=无,\n urcrnrlon=无, urcrnrlat=无, llcrnrx=无, llcrnry=无,\n urcrnrx=无, urcrnry=无, 宽度=无, 高度=无,投影=\xe2\x80\x99cyl\xe2\x80\x99,\n 分辨率=\xe2\x80\x99c\xe2\x80\x99,area_thresh=无,rsphere=6370997.0,ellps=无,\n lat_ts=无, lat_1=无、lat_2=无、lat_0=无、lon_0=无、\n lon_1=无、lon_2=无、o_lon_p=无、o_lat_p=无、k_0=无、\n no_rot=False、suppress_ticks=True、satellite_height= 35786000、\nboundinglat=无、fix_aspect=True、anchor=\xe2\x80\x99C\xe2\x80\x99、celestial=False、\n round=False、epsg=无、ax=无)
\n
但我没有这样做过:
\n\nClat=Form_Cities["lat"].values\nClon=Form_Cities["lon"].values\nRun Code Online (Sandbox Code Playgroud)\n\n还是我错了?
\n\n有人可以向我解释一下吗?
\n| 归档时间: |
|
| 查看次数: |
928 次 |
| 最近记录: |