我正在尝试在城市地图上绘制一堆点,但我很难找到一个效果很好的套餐。看起来Matplotlib Basemap不包含跨越30英里半径的许多点的足够细节,例如我没有看到一种方法来小规模地添加高速公路和其他区别特征。
因此,我问你是否可以建议如何将这些类型的城市地图特征添加到底图,或者是否有另一个包适用于城市地图上30英里范围的散点图。谢谢你的帮助!
答案 0 :(得分:5)
我认为底图会很好用。如果您可以获取地理shapefile,则添加邮政编码边界和主要/次要道路(以及许多其他数据)是没有问题的。以下是一个示例输出:
如果您对在美国制作地点感兴趣,此网站提供免费的shapefile:http://www.landsat.com/free-gis-data.html
我使用德州邮政编码和道路数据(以及一堆纬度/长坐标)来生成上面的地图。
您可以像这样加载shapefile:
self.map = Basemap(projection='merc', lat_0=mlat, lon_0=mlon, resolution = 'l', area_thresh = 1.0,
llcrnrlon=-num, llcrnrlat=num,
urcrnrlon=-num, urcrnrlat=num)
map.readshapefile('/home/person/zipfolder/rds/tl_2010_48_prisecroads', 'Streets',drawbounds = False)
for shape in self.map.Streets:
xx, yy, = zip(*shape)
self.map.plot(xx, yy, linewidth = 1.5, color='green', alpha=.75)
##Same for zip codes