文章目录
- gridlines
- 方法定义
gridlines
gridlines可以根据坐标系,自动绘制网格线,这对于普通绘图来说显然不必单独拿出来说说,但在地图中,经纬线几乎是必不可少的,而随着投影方式的不同,经纬线未必与坐标框线平行,所以这个功能还是十分必要的。比如加载地形图后,直接调用
ax = plt.axes(projection=ccrs.PlateCarree())
ax.stock_img()
ax.gridlines()
plt.show()
如下图所示
方法定义
gridlines的完整定义如下,参数很多
gridlines(crs=None, draw_labels=False, xlocs=None, ylocs=None, dms=False, x_inline=None, y_inline=None, auto_inline=True, xformatter=None, yformatter=None, xlim=None, ylim=None, rotate_labels=None, xlabel_style=None, ylabel_style=None, labels_bbox_style=None, xpadding=5, ypadding=5, offset_angle=25, auto_update=False, formatter_kwargs=None, **kwargs)
参数含义如下
- crs 坐标映射
- draw_labels
- 为False时,不绘制标签
- 为"x"或者"y"时,只绘制对应坐标轴的标签
- 为列表时,其对应标签顺序为[“x”, “y”, “top”, “bottom”, “left”, “right”, “geo”]
- 为字典时,则在key所在位置添加value标签
- xlocs, ylocs 用于确定网格线在给定的crs中的x/y的位置
- dms 设为True时,网格附着在整数度分的位置
- x_inline, y_inline 为True时,x/y标签放在图像内部
- auto_inline 若为True,则自动设置x_inline和y_inline
- xformatter, yformatter x/y网格的标签格式
- xlim, ylim 设置 x , y x,y x,y的坐标范围
- rotate_labels 为False时不旋转标签;为True时,将标签旋转至与网格平行;为None时将根据对应的映射自行选择;如果是一个浮点数,则旋转对应角度
- xlabel_style, ylabel_style 为字典类型,用于设置x/y标签的风格
- labels_bbox_style 图框风格字典
- xpadding, ypadding x/y标签的留白,俗称出血
- offset_angle 偏移角度
- auto_update 为True时,若图像刷新,则网格及其标签亦更新
- formatter_kwargs 经纬度格式字典
示例
下面的示例来自官网
rotated_crs = ccrs.RotatedPole(pole_longitude=120.0, pole_latitude=70.0)ax = plt.axes(projection=rotated_crs)
ax.set_extent([-6, 3, 48, 58], crs=ccrs.PlateCarree())
ax.coastlines(resolution='50m')
ax.gridlines(draw_labels=True, dms=True, x_inline=False, y_inline=False)plt.show()
其经纬线的绘图元素有,标签,并且 x , y x,y x,y方向的标签均绘制在图像外侧;dms设为True,所以图像中所有的经纬度均为整数。绘图结果如下