Matplotlib Только маркеры легенд
Я часто рисую точку на графике matplotlib с помощью:
x = 10
y = 100
plot(x, y, "k*", label="Global Optimum")
legend()
Однако это приводит к тому, что легенда дважды помещает звезду в легенду, так что она выглядит так:
* * Global Optimum
когда я действительно хочу, чтобы он выглядел так:
* Global Optimum
Как это сделать?
Ответы
Ответ 1
Это должно работать:
legend(numpoints=1)
Кстати, если вы добавите строку
legend.numpoints : 1 # the number of points in the legend line
в ваш файл matplotlibrc, тогда это будет новый по умолчанию.
[См. также точки рассеяния, в зависимости от вашего сюжета.]
API: Ссылка на документы API
Ответ 2
Мне нравится изменять параметры matplotlib rc динамически в каждом python script. Для достижения этой цели я просто использую нечто подобное в начале моих файлов python.
from pylab import *
rcParams['legend.numpoints'] = 1
Это применимо ко всем графикам, сгенерированным из моего файла python.
EDIT: для тех, кто не любит импортировать pylab, длинный ответ
import matplotlib as mpl
mpl.rcParams['legend.numpoints'] = 1