python使用cartopy在地图中添加经纬线的示例代码
作者:微小冷
gridlines可以根据坐标系,自动绘制网格线,这对于普通绘图来说显然不必单独拿出来说说,但在地图中,经纬线几乎是必不可少的,本文将给大家介绍了python使用cartopy在地图中添加经纬线的方法,需要的朋友可以参考下
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,yx,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方向的标签均绘制在图像外侧;dms设为True,所以图像中所有的经纬度均为整数。绘图结果如下
到此这篇关于python使用cartopy在地图中添加经纬线的示例代码的文章就介绍到这了,更多相关python cartopy添加经纬线内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!