Cartopy:地图绘制的神器
最近在捣鼓数据可视化,发现了个宝藏库Cartopy。这玩意儿简直就是地图界的瑞士军刀,啥地图都能画,还能整出各种花里胡哨的效果。今儿个就给大伙儿安利一下这个神器。
1
啥是 Cartopy?
Cartopy 是个 Python库,专门用来画地图的。它能处理地理空间数据,还能绘制各种投影的地图。不管你是想画个简单的世界地图,还是想整出一个复杂的气象图,Cartopy 都能轻松搞定。
import cartopy.crs as ccrsimport matplotlib.pyplot as pltfig = plt.figure(figsize=(10, 5))ax = fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree())ax.stock_img()plt.show()
这段代码就能画出一个基本的世界地图。是不是很简单?
2
地图投影
Cartopy 支持超多种地图投影,啥墨卡托、兰伯特、极地立体啥的,应有尽有。你只需要改变 projection 参数就行了。
ax = fig.add_subplot(1, 1, 1, projection=ccrs.Orthographic(0, 0))
这样就能画出一个正投影的地球啦。看着是不是像个球?
温馨提示:选择合适的投影很重要哦!不同的投影适合展示不同的地理区域和数据类型。
3
添加地理特征
光有一张白纸似的地图多没意思。Cartopy 允许你往地图上加各种地理特征,比如海岸线、国界、河流啥的。
import cartopy.feature as cfeatureax.add_feature(cfeature.LAND)ax.add_feature(cfeature.OCEAN)ax.add_feature(cfeature.COASTLINE)ax.add_feature(cfeature.BORDERS, linestyle=':')
这样你的地图就有了海陆轮廓和国界线。是不是感觉一下子就高大上了?
4
绘制数据
有了底图,咱们就该往上画数据了。Cartopy 跟 Matplotlib 无缝集成,你可以用 Matplotlib 的所有绘图函数。
这段代码就在地图上画了一个漂亮的等值线图。数据是随机生成的,你可以换成自己的实际数据。
5
自定义地图范围
有时候你可能只想专注于某个特定区域,比如中国。Cartopy 让你轻松设置地图范围:
这样就把地图范围限定在了中国周边区域。
6
添加图例和标题
地图画好了,别忘了加上图例和标题,让你的地图更专业:
plt.colorbar(label='随机数据')plt.title('中国及周边地区地图')
温馨提示:记得给你的图表加上清晰的标题和图例,这样别人看你的地图才不会一头雾水。
7
保存地图
把你的杰作保存下来:
这样就把地图保存成了一个高清图片文件。
Cartopy 还有好多高级功能,比如添加地形阴影、绘制飞行路线、展示卫星图像等等。今天就先聊到这儿,以后有空再细说。用 Cartopy画地图真的超级有意思,你们也赶紧试试吧!
领取专属 10元无门槛券
私享最新 技术干货