È possibile modificare il numero di marcatori indicati nella leggenda utilizzando la parola chiave numpoints
:
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 credi che il motivo per cui gli indicatori compaiono due volte (di default) è perché m atplotlib sta cercando di mostrare i connettori di stile lineare tra i marcatori. Sembra un po 'strano quando non c'è nessun connettore.
Se la trama aveva linee continue e tratteggiate,
plt.plot(x1,x2,'g--^', label='regional')
plt.plot(y1,y2,'b-o', label='local')
poi la leggenda si presenta così:
e ora si può vedere l'effetto del lineStyle tra i marcatori in la legenda (oltre che sul grafico).
Se non si desidera alcun maniglia leggenda a tutti, allora si potrebbe utilizzare
plt.legend(..., handlelength=0)
Per esempio,
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()
Si potrebbe utilizzare
plt.legend(loc='best', numpoints=1, handlelength=0,
markerscale=0, handletextpad=0)
per rimuovere anche l'indicatore di legenda.
Capito. Grazie mille! – Patrick
È possibile disattivare completamente il connettore di linea? O devo usare il comando 'scatter()' per quello? – Thriveth
Ho aggiunto il codice sopra che mostra come farlo. – unutbu