如何在 Python 中的 Geo Pandas 地块上同时添加 NAME 和 NUMBER 描述?

How to add both NAME and NUMBER description on Geo Pandas plot in Python?

我尝试在 Python 的 GeoPandas 中创建地图。

我使用下面的代码:

fig, ax = plt.subplots(1, figsize = (20,10))
 
dane_mapa_woj.plot(column='liczba_logowan_w_wojewodztwie', ax=ax, cmap='YlOrRd', linewidth=0.8, edgecolor='gray', legend = True)

#dane_mapa_woj.apply(lambda x: ax.annotate(text=x.NUMBER, xy=x.geometry.centroid.coords[0], ha='center', color = "black"), axis=1)
dane_mapa_woj.apply(lambda x: ax.annotate(text=x.NAME, xy=x.geometry.centroid.coords[0], ha='center', color = "black"), axis=1)

ax.axis('off')
 
plt.show()

我的图片如下所示:

如您所见,我通过代码对每个地区进行了描述:dane_mapa_woj.apply(lambda x: ax.annotate(text=x.NAME, xy=x.geometry.centroid.coords[0], ha='center', color = "black"), axis=1)

尽管如此,我想在我的地块上同时使用 NAME 和 NUMBER,但是当我同时使用这些代码时:

dane_mapa_woj.apply(lambda x: ax.annotate(text=x.NUMBER, xy=x.geometry.centroid.coords[0], ha='center', color = "black"), axis=1)
dane_mapa_woj.apply(lambda x: ax.annotate(text=x.NAME, xy=x.geometry.centroid.coords[0], ha='center', color = "black"), axis=1)

我的照片很乱:

我的问题是:如何管理 NAME 和 NUMBER 描述在绘图中的位置?你能改变我的代码来减少这种混乱吗?我想要一些类似的东西:

波莫尔斯基

5742

您可以尝试使用换行命令:

dane_mapa_woj.apply(lambda x: ax.annotate(text=x.NAME +'\n' + x.NUMBER, xy=x.geometry.centroid.coords[0], ha='center', color = "black", weight='semibold'), axis=1)

否则,如果您想精确定位文本,请考虑通过 ax.annotate()

xytexttextcoords 参数移动文本
dane_mapa_woj.apply(lambda x: ax.annotate(text=x.NAME, xy=x.geometry.centroid.coords[0], xytext=(0,0), textcoords='offset pixels', ha='center', color = "black", weight='semibold'), axis=1)
dane_mapa_woj.apply(lambda x: ax.annotate(text=x.NUMBER, xy=x.geometry.centroid.coords[0], xytext=(0,10), textcoords='offset pixels', ha='center', color = "black", weight='semibold'), axis=1)