如何在地理熊猫地图上添加“北箭”

时间:2019-09-24 22:21:29

标签: python geopandas

我使用geopandas创建了地图,但无法在地图上添加“北向箭头”。

创建地图后,我尝试使用matplotlib.image模块添加“北向箭头”,并尝试了不同的方式(请参见下面的示例),但是没有一个提供良好的结果。我正在寻找更好的代码,可以向地图添加良好的“北向箭头”

import matplotlib.image as img

from matplotlib.offsetbox import TextArea, DrawingArea, OffsetImage, 
    AnnotationBbox

im=img.imread(r'C:\Users\jnisengw\Dropbox\2019\Data 
    Science\QGIS\north_arrow1.png')

imagebox = OffsetImage(im,zoom=0.27)

ab = AnnotationBbox(imagebox, (598500,4699000))

ax.add_artist(ab)

1 个答案:

答案 0 :(得分:2)

如果只需要添加一个简单的箭头,也可以考虑使用annotate() method

import geopandas as gpd
import matplotlib.pyplot as plt

gdf = gpd.read_file(gpd.datasets.get_path('nybb'))

fig, ax = plt.subplots(figsize=(6, 6))
gdf.plot(ax=ax)

x, y, arrow_length = 0.5, 0.5, 0.1
ax.annotate('N', xy=(x, y), xytext=(x, y-arrow_length),
            arrowprops=dict(facecolor='black', width=5, headwidth=15),
            ha='center', va='center', fontsize=20,
            xycoords=ax.transAxes)

enter image description here

注意:通过xycoords=ax.transAxes时,x,y坐标已标准化,x, y = 0.5, 0.5表示将箭头放在地图的中间。