欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【python】使用python绘制地图时添加指北针

程序员文章站 2022-03-15 15:01:44
本博文基于matplotlib,手动实现在python中绘制地图时添加指北针。代码如下:from mpl_toolkits.basemap import Basemapimport matplotlib.pyplot as pltimport matplotlib.patches as mpatches#-----------函数:添加指北针--------------def add_north(ax, labelsize=18, loc_x=0.88, loc_y=0.85, width=0...

写在前面

本博文基于matplotlib,手动实现在python中绘制地图时添加指北针。

代码如下:

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches

#-----------函数:添加指北针--------------
def add_north(ax, labelsize=18, loc_x=0.88, loc_y=0.85, width=0.04, height=0.13, pad=0.14):
    """
    画一个比例尺带'N'文字注释
    主要参数如下
    :param ax: 要画的坐标区域 Axes实例 plt.gca()获取即可
    :param labelsize: 显示'N'文字的大小
    :param loc_x: 以文字下部为中心的占整个ax横向比例
    :param loc_y: 以文字下部为中心的占整个ax纵向比例
    :param width: 指南针占ax比例宽度
    :param height: 指南针占ax比例高度
    :param pad: 文字符号占ax比例间隙
    :return: None
    """
    minx, maxx = ax.get_xlim()
    miny, maxy = ax.get_ylim()
    ylen = maxy - miny
    xlen = maxx - minx
    left = [minx + xlen*(loc_x - width*.5), miny + ylen*(loc_y - pad)]
    right = [minx + xlen*(loc_x + width*.5), miny + ylen*(loc_y - pad)]
    top = [minx + xlen*loc_x, miny + ylen*(loc_y - pad + height)]
    center = [minx + xlen*loc_x, left[1] + (top[1] - left[1])*.4]
    triangle = mpatches.Polygon([left, top, right, center], color='k')
    ax.text(s='N',
            x=minx + xlen*loc_x,
            y=miny + ylen*(loc_y - pad + height),
            fontsize=labelsize,
            horizontalalignment='center',
            verticalalignment='bottom')
    ax.add_patch(triangle)

###
## 调用
#-----------添加指北针------------
ax = plt.gca()
add_north(ax)

效果预览

【python】使用python绘制地图时添加指北针


代码参考https://blog.csdn.net/weixin_44092702/article/details/99690821
有部分修改。

本文地址:https://blog.csdn.net/qq_32832803/article/details/110910540