Matplotlib Legend markery tylko raz

Często wykreślam punkt na wykresie matplotlib z:

x = 10
y = 100
plot(x, y, "k*", label="Global Optimum")
legend()
Jednak to powoduje, że legenda umieszcza gwiazdę w legendzie dwa razy, tak że wygląda ona następująco:]}
* * Global Optimum

Kiedy naprawdę chcę, żeby wyglądało tak:

 *  Global Optimum
Jak mam to zrobić?
Author: carl, 2011-05-27

2 answers

To powinno zadziałać:

legend(numpoints=1)

BTW, jeśli dodasz wiersz

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

Do pliku matplotlibrc, wtedy będzie to nowa wartość domyślna.

[patrz również punkty rozproszone, w zależności od wykresu.]

API: Link do dokumentów API

 241
Author: DSM,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-16 12:16:01

Lubię dynamicznie zmieniać parametry matplotlib RC w każdym skrypcie Pythona. Aby osiągnąć ten cel, po prostu używam czegoś takiego na początku moich plików Pythona.

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

Będzie to miało zastosowanie do wszystkich Wykresów wygenerowanych z mojego pliku Pythona.

EDIT: dla tych, którzy nie lubią importować pylab, długa odpowiedź brzmi

import matplotlib as mpl
mpl.rcParams['legend.numpoints'] = 1
 25
Author: mcgagnon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-11 16:29:46