在使用Basemap过程中发现它不能添加指南针,自带的添加经纬度只能画经纬度线和添加text,却不能像arcmap那样显示刻度。
由于Basemap基于matplotlib,可以手动实现这两个功能。
代码如下:
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
def set_lonlat(_m, lon_list, lat_list, lon_labels, lat_labels, lonlat_size):
"""
为Basemap实例画带tick标的经纬度注释
自带画水平线和竖直线标注方式不带刻度标
当然函数仍调用了自带标注函数只是在此基础上加了tick标
:param _m: Basemap实例
:param lon_list: 经度 详见Basemap.drawmeridians函数介绍
:param lat_list: 纬度 同上
:param lon_labels: 标注位置 [左, 右, 上, 下] bool值 默认只标注左上待完善 可使用twinx和twiny实现
:param lat_labels: 同上
:param lonlat_size: 字体大小
:return:
"""
lon_dict = _m.drawmeridians(lon_list, labels=lon_labels, color='none', fontsize=lonlat_size)
lat_dict = _m.drawparallels(lat_list, labels=lat_labels, color='none', fontsize=lonlat_size)