Маркеры легенды matplotlib только один раз - PullRequest
234 голосов
/ 27 мая 2011

Я часто строю точку на графике matplotlib с:

x = 10
y = 100
plot(x, y, "k*", label="Global Optimum")
legend()

Однако это приводит к тому, что легенда дважды ставит звезду в легенде, так что она выглядит следующим образом:

* * Global Optimum

когда я действительно хочу, чтобы это выглядело так:

 *  Global Optimum

Как мне это сделать?

Ответы [ 2 ]

248 голосов
/ 27 мая 2011

Это должно работать:

legend(numpoints=1)

Кстати, если вы добавите строку

legend.numpoints     : 1      # the number of points in the legend line

в ваш файл matplotlibrc, тогда это будет новое значение по умолчанию.

[См. Также точки рассеяния, в зависимости от вашего графика.]

API: Ссылка на документы API

25 голосов
/ 26 февраля 2013

Мне нравится динамически изменять мои параметры matplotlib rc в каждом скрипте python. Для достижения этой цели я просто использую что-то подобное в начале своих файлов Python.

from pylab import *
rcParams['legend.numpoints'] = 1

Это будет применяться ко всем графикам, сгенерированным из моего файла python.

РЕДАКТИРОВАТЬ: для тех, кто не любит импортировать pylab, длинный ответ

import matplotlib as mpl
mpl.rcParams['legend.numpoints'] = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...