底图
底图
matplotlib+cartopy+geopandas,实现专业地图可视化
底图:NASA’s Global Imagery Browse Services(GIBS)visualization archive/ Visualization Product Catalog | 天地图
常用地图底图的绘制一般由Basemap或者Cartopy模块库完成,由于Basemap库是Matplotlib的一个子包,负责地图绘制,基于python2开发的一个模块,目前已经不开发维护。故目前主要使用Cartopy模块库。
做底图,需要考虑投影、坐标系等。
投影就是将地球三维球体投影到二维面上。主要投影方式有默认投影(PlateCarree,常用的平面投影)、兰勃脱投影(Lambert)、墨卡托投影(Mercator)、极投影等。
底图01(源码)
底图02(源码)
底图_Feature_COASTLINE_10m(源码 )
底图_BlueMarble_ShadedRelief(源码 )
底图_VIIRS_CityLights_2012(源码 )
底图_经纬网和九段线的标准中国地图(源码 )
底图_向日葵卫星_字带阴影(源码 )
plt.figure()、plt.subplot()的区别
使用figure()函数建立的是一张空白的图片(下图右),而使用subplot()函数建立的是一张有坐标的图片(下图左)(源码)。
看源码,似乎fig,axe的声明有点多余,但是如果不用就会出错。
其实上面语句等于:
fig = plt.figure()
axe = fig.add_subplot(111)
plt.figure、plt.subplot、plt.subplots、add_subplots、add_axes详解
plt: subplot()、subplots()详解及返回对象figure、axes的理解
fig, ax = plt.subplots()
subplot的示例(源码)
标题set_title
axe.set_title('温度$mathbf{(2m)}$', fontproperties=Simsun, fontsize=12, loc='left')
用法: Axes.set_title(self, label, fontdict=None, loc=’center’, pad=None, **kwargs)
label:此参数是用于标题的文本。
fontdict:此参数是控制标题文本外观的字典。
loc:此参数用于设置标题{'center','left','right'}的位置。
pad:此参数是标题距轴顶部的偏移量(以磅为单位)。
还有一种方法设置title的位置(xy,如果等于1就是数据区域的大小):
axe.set_title('温度$mathbf{(2m)}$',fontproperties=Simsun, fontsize=12, y=1)
可以指定自己需要的配色方案,可以使用matplotlib官方提供的cmap,可以使用ncl的配色方案。