我使用 geopandas 创建了一个地图,但我无法在地图上添加“北向箭头”。
创建地图后,我试图使用 matplotlib.image 模块添加“north arrow”,并尝试了不同的方法(见下面的例子),但没有一个提供了一个很好的结果。
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)
如果只需要添加一个简单的箭头,也可以考虑annotate()
metd。
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)
注意:当你通过xycoords=ax.transAxes
时,x,y 坐标被归一化,x, y = 0.5, 0.5
意味着你把箭头放在地图的中间。
如果有人仍然需要这个...
EOmaps v3.1现在有一个适当的北向箭头,并与 geopandas 很好地互动!
from eomaps import Maps
m = Maps()
m.add_feature.preset.ocean()
m.add_comp(style="north arrow")
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(11条)