安装cartopy库
首先上官方文档地址:cartopy
-
在线conda 安装:
conda install cartopy
(安装成功就不需要再看离线安装方法) -
离线安装: http://www.lfd.uci.edu/~gohlke/pythonlibs/#cartopy
注意:需要一些必须的软件包Shapely、pyshp,Cartopy所依赖的这两个库也都从上面的网址下载。
测试
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
plt.figure(figsize=(6, 3))
ax = plt.axes(projection=ccrs.PlateCarree(central_longitude=180))
ax.coastlines(resolution='110m')
ax.gridlines()
plt.show()
测试失败 error/ warning: 没有地图文件。这里是因为cartopy运行程序默认从Natural Earth下载地图文件。可以优先下载地图文件放在本地文件夹下。
下载Natural Earth地图数据
- 下载10m、50m和110m分辨率的cultural 和 physical类型数据。
- 解压到本地路径:C:\Users\Administrator.local\share\cartopy\shapefiles\natural_earth\physical or C:\Users\Administrator.local\share\cartopy\shapefiles\natural_earth\cultural 中。
注:如果找不到,搜索 C:\Users\xxx.local\share\cartopy\shapefiles\natural_earth\physical
解压完成后,不能重新运行测试代码,要对代码进行修改
绘制地图测试代码
demo: 其中scale参数用于调整使用哪种分辨率的地图,全球地图建议用1:110的,小尺度地图可以用1:50的或1:10的。
1 Global map
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature
from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter
scale = '110m' # 补充1
fig = plt.figure(figsize=(8, 10))
ax = plt.axes(projection=ccrs.PlateCarree(central_longitude=180))
ax.set_global()
# 补充部分
###### start #####
land = cfeature.NaturalEarthFeature('physical', 'land', scale, edgecolor='face',
facecolor=cfeature.COLORS['land'])
ax.add_feature(land, facecolor='0.75')
ax.coastlines(scale)
###### end ######
# 标注坐标轴
ax.set_xticks([0, 60, 120, 180, 240, 300, 360], crs=ccrs.PlateCarree())
ax.set_yticks([-90, -60, -30, 0, 30, 60, 90]