当我在计算机上运行以下代码时,没有显示街道信息:
但是,当我在另一台机器上运行完全相同的代码时,地图会成功加载:
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
lat_min = 39.714223
lat_max = 39.790
long_min= -105.184
long_max = -104.962
m= Basemap(llcrnrlon=long_min, llcrnrlat=lat_min, urcrnrlon=long_max, urcrnrlat=lat_max, lat_0=(lat_max - lat_min)/2, lon_0=(long_max-long_min)/2, projection='merc', epsg=4326, resolution = 'c', area_thresh=10000.,)
m.drawcoastlines()
m.drawcountries()
m.drawstates()
m.drawmapboundary()
m.arcgisimage(service='ESRI_StreetMap_World_2D', xpixels=2000, verbose=True, zorder=1)
plt.show()
除了安装底图之外,还有其他导入步骤需要显示ESRI图层吗?我是在几个月前脚本运行的机器上安装了Basemap的,我不记得是否需要任何其他步骤。
答案 0 :(得分:0)
您的问题在于drawmapboundary()
,默认情况下,该地图会用Axes
背景色填充地图。忽略该命令或将填充颜色设置为'none'
将解决此问题。即代码:
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
lat_min = 39.714223
lat_max = 39.790
long_min= -105.184
long_max = -104.962
m= Basemap(
llcrnrlon=long_min, llcrnrlat=lat_min,
urcrnrlon=long_max, urcrnrlat=lat_max,
##lat_0=(lat_max + lat_min)/2,
##lon_0=(long_max+long_min)/2,
projection='merc',
epsg=4326,
resolution = 'c',
area_thresh=10000.,
)
m.drawcoastlines()
m.drawcountries()
m.drawstates()
m.drawmapboundary(fill_color='none')
m.arcgisimage(service='ESRI_StreetMap_World_2D', xpixels=2000, verbose=True, zorder=1)
plt.show()
为我制作这张图片:
如果没有fill_color='none'
,我也会得到一张白色地图。希望这会有所帮助。