Można zmienić liczbę markerów przedstawionych w legendzie za pomocą numpoints
kluczowe:
import matplotlib.pyplot as plt
import numpy as np
x1 = y1 = np.linspace(0, 10, 100)
x2 = np.sin(x1)
y2 = np.cos(y1)
plt.plot(x1,x2,'g--^', label='regional')
plt.plot(y1,y2,'b-o', label='local')
plt.legend(loc='upper left', numpoints = 1)
plt.show()
I że powodem, dla którego znaczniki pojawiają się dwa razy (domyślnie), jest to, że m atplotlib próbuje pokazać łączniki stylowe między markerami. Wygląda to trochę dziwnie, gdy nie ma złącza.
Jeżeli działka miał stałe i przerywane linie,
plt.plot(x1,x2,'g--^', label='regional')
plt.plot(y1,y2,'b-o', label='local')
następnie legenda wygląda następująco:
a teraz można zobaczyć efekt lineStyle między markerami w legenda (jak również na wykresie).
Jeśli nie chcemy żadnego uchwytu legendy w ogóle, wówczas można użyć
plt.legend(..., handlelength=0)
Na przykład
import numpy as np
import matplotlib.pyplot as plt
x1 = y1 = np.linspace(0, 10, 100)
x2 = np.sin(x1)
y2 = np.cos(y1)
plt.plot(x1,x2,'g--^', label='regional')
plt.plot(y1,y2,'b-o', label='local')
plt.legend(loc='best', numpoints=1, handlelength=0)
plt.show()
Można użyć
plt.legend(loc='best', numpoints=1, handlelength=0,
markerscale=0, handletextpad=0)
, aby również usunąć znacznik legendy.
Zrozumiano. Dziękuję Ci bardzo! – Patrick
Czy można całkowicie odłączyć złącze linii? Czy muszę użyć do tego celu polecenia 'scatter()'? – Thriveth
Dodałem kod powyżej pokazujący, jak to zrobić. – unutbu