Несколько отметок на легенде - PullRequest
1 голос
/ 30 апреля 2019

Я создал легенду для некоторых меток, которые я нанес на изображение со спутниковых данных.Я не могу понять, как сделать несколько отметок для разных мест, которые я строю.

import matplotlib.patches as mpatches

colors = ["g", "w", "y", "b", "w", "g"]
texts = ["San Luis","Tupungato", "Tierra Alta", "Tokio", "Cordoba","Sierras de Cordoba"]
patches = [plt.plot([],[], marker="o", ms=10, ls="", mec=None, color=colors[i], 
          label="{:s}".format(texts[i]) )[0]  for i in range(len(texts)) ]
plt.legend(handles=patches, bbox_to_anchor=(0.5, 0.5), 
                   loc='center right', ncol=2, facecolor="plum", numpoints=1 )

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

1 Ответ

1 голос
/ 30 апреля 2019

Вам необходимо указать каждый plot() с изменяющимся параметром marker.Вот обновленный код и пример выходного графика.

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

colors = ["g", "w", "y", "b", "w", "g"]
texts = ["San Luis","Tupungato", "Tierra Alta", "Tokio", "Cordoba","Sierras de Cordoba"]

# a list of marker shapes
markers = ["o", "^", "v", "<", ">", "s"]

patches = [plt.plot([],[], marker=markers[i], ms=10, ls="", mec=None, color=colors[i], 
          label="{:s}".format(texts[i]) )[0]  for i in range(len(texts)) ]

plt.legend(handles=patches, bbox_to_anchor=(1, 1), 
                   loc='upper right', ncol=2, facecolor="plum", numpoints=1 )

enter image description here

...