Легенда графика Matplotlib для нескольких записей - PullRequest
1 голос
/ 07 ноября 2019

Я строю несколько полигонов на графике:

from shapely.geometry import Polygon
import matplotlib.pyplot as plt

polygons.append(Polygon([(1,9), (4,9), (4,6), (1,6)]))
polygons.append(Polygon([(7,9), (10,9), (10,6), (7,6)]))
polygons.append(Polygon([(7,4), (10,4), (10,1), (7,1)]))
polygons.append(Polygon([(1,4), (4,4), (4,1), (1,1)]))
polygons.append(Polygon([(3,3), (3,7), (8,7), (8,3)]))

plt.figure()
for poly in polygons:
    plt.plot(*poly.exterior.xy)
plt.show()

В полученном графике правильно отображаются мои полигоны, но я хотел бы знать, какой из них соответствует какому индексу на графике (например, зеленый полигон)это многоугольник в polygons[2]). В идеале я хотел бы, чтобы легенда связывала цвет многоугольника с его индексом, но я не могу понять, как добавить такую ​​легенду в такой цикл. Я пробовал plt.legend(polygons.index(poly)), но это не сработало.

Количество полигонов является переменным, поэтому о точном назначении цветов не может быть и речи.

Как добавить легенду?

1 Ответ

1 голос
/ 07 ноября 2019

У меня не установлено shapely, но вы можете попробовать что-то подобное. Вы можете использовать параметр label, чтобы отметить легенды, отслеживая индекс многоугольника с помощью enumerate.

plt.figure()

for i, poly in enumerate(polygons):
    plt.plot(*poly.exterior.xy, label="Polygon %d"%i)
plt.legend()
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...