如何在 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()
的 xytext
和 textcoords
参数移动文本
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)
我尝试在 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()
的xytext
和 textcoords
参数移动文本
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)