多边形上的点(散点)不显示在 matplotlib 中

Points (scatter) on a polygon do not show in matplotlib

我想使用 matplotlib 绘制一些(简单的)多边形并在其上绘制一些点。多边形没有问题,但散点不显示。关于如何解决/更正此问题的任何建议?

# imports
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon

# polygons
gg = {'municipality 1': [(1, 1), (2, 5), (3, 3), (2, 0)],
      'municipality 2': [(3, 4), (4, 6), (5, 8), (6, 3)],
      'municipality 3': [(2, 0), (3, 3), (3, 4), (6, 3), (4, -3)]}

# points / places
gh = {'municipality 1': (4, 2), 'municipality 2': (2, 2), 'municipality 3': (5, 5)}

# set colors
gk = {'municipality 1': 'royalblue', 'municipality 2': 'tomato', 'municipality 3': 'springgreen'}

# figure
fig, ax = plt.subplots()

for gemeente in gg.keys():
    poly = Polygon(gg[gemeente], label=gemeente, facecolor=gk[gemeente], edgecolor='black', linewidth=1)
    ax.add_patch(poly)

for gemeente in gh.keys():
    ax.scatter(gh[gemeente][0], gh[gemeente][1], c='black', label=gemeente)

ax.legend()

plt.autoscale()
plt.show()

点在那里,但隐藏在多边形之下。您可以使用 zorder 参数来设置哪个图在上面:

for gemeente in gg:
    poly = Polygon(gg[gemeente], label=gemeente, facecolor=gk[gemeente], edgecolor='black', linewidth=1, zorder=1)
    ax.add_patch(poly)
    ax.scatter(gh[gemeente][0], gh[gemeente][1], c='black', label=gemeente, zorder=2)