Точки (разброс) на многоугольнике не отображаются в matplotlib - PullRequest
0 голосов
/ 14 апреля 2020

Я хотел бы нарисовать несколько (простых) полигонов, используя 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()

1 Ответ

2 голосов
/ 14 апреля 2020

Точки есть, но спрятаны под полигонами. Вы можете использовать параметр 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)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...