【问题标题】:Adding label or location for geopandas plot为 geopandas 图添加标签或位置
【发布时间】:2020-07-18 07:16:36
【问题描述】:

我已经创建了一个包含所有行政位置的州的 geopandas 图。

ma​​p_df

NAME    ADMIN_LEVE  geometry    Party
0   Valsad  5   POLYGON ((73.02324 20.72237, 73.04599 20.70275...   3
1   Mumbai  None    POLYGON ((72.76066 18.83622, 72.75976 19.18686...   2
2   Mumbai  5   POLYGON ((72.83468 19.04853, 72.84073 19.04861...   2
3   Daman   5   POLYGON ((72.85930 20.47104, 72.86580 20.46770...   2
4   Bharathiya Kamala Nagar None    POLYGON ((72.87127 19.02556, 72.87158 19.02717...   5
... ... ... ... ...
79  Dantewada   5   POLYGON ((80.82621 19.34821, 80.83647 19.33215...   4
80  Raj Nandgaon    5   POLYGON ((80.81506 20.76028, 80.81328 20.74423...   1
81  Kanker  5   POLYGON ((80.91854 20.09037, 80.89668 20.09483...   2
82  Bastar  5   POLYGON ((80.92032 19.31699, 80.89713 19.31387...   1
83  Durg    5   POLYGON ((80.84896 20.66974, 80.82175 20.68357...   4

这是我用来创建状态图的代码:

fig, ax = plt.subplots(1, figsize=(200, 100))
cmap = colors.ListedColormap(['red', 'blue', 'green', 'yellow', 'orange'])
bounds = [1,2,3,4,5,6]
norm = colors.BoundaryNorm(bounds, cmap.N)
ax.axis('off')
map_df.plot(column='Party', cmap=cmap, norm=norm,linewidth=0.8, ax=ax, edgecolor='0.8')
plt.show()

当前输出:

所需的输出:将是整个地图标记如下:

我想更改此图像,以便在该管理位置的地块内标记map_df['NAME'] 中的值。

非常感谢任何帮助或建议。

【问题讨论】:

标签: python matplotlib geopandas


【解决方案1】:

你可以像这样简单地添加一个标签

ax = map_df.plot(column='Party', cmap=cmap, norm=norm,linewidth=0.8, ax=ax, edgecolor='0.8')
ax.annotate(label, xy=(x, y), xytext=(3, 3), textcoords="offset points")

label 是您想要添加的其余变量的定义。有关更多信息,请参阅 here

我还建议使用legends,因为文本可能会在面积较小的区域溢出。您可以在此处查看更多信息 - Customize Map Legends and Colors in Python

【讨论】:

  • 感谢@AzyCrw4282,抱歉回复晚了。
猜你喜欢
  • 2018-10-20
  • 1970-01-01
  • 2019-09-05
  • 1970-01-01
  • 2019-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多