Ecco un diagramma semplificato della situazione:Matplotlib, leggenda con più marcatori diversi, con una sola etichetta
Invece di avere ogni marcatore punto di dati hanno un'etichetta separata, voglio essere in grado di avere un'etichetta per un insieme di marcatori diversi. Mi piacerebbe essere in grado di avere una leggenda come:
<triangle> <square> <hexagon> <diamond> <circle> Shotcrete strength data points
<green line> 10 minute strength
<blue line> 60 minute strength
<yellow line> 1 day strength
<orange line> 7 day strength
<red line> 28 day strength
che voglio fare questo perché nella scena finale avrò tre serie di punti di dati e che mostrano 18 (3 serie * 6 punti/set) marcatore/combinazioni di etichette saranno disordinate.
Sto usando Matplotlib con Python 2.7.
Attualmente sto usando le linee di psuedo per rendere la mia leggenda. Penso che potrei essere in grado di utilizzare qualcosa del genere (http://matplotlib.sourceforge.net/users/legend_guide.html#legend-handler): 'codice' z = np.random.randn (10) p1a, = plt.plot (z, "ro", ms = 10, mfc = "r", mew = 2, mec = "r") # cerchio rosso riempito p1b, = plt.plot (z [: 5 ], "w +", ms = 10, mec = "w", mew = 2) # croce bianca plt.legend ([p1a, (p1a, p1b)], ["Attr A", "Attr A + B "]) ' code' per combinare più marker su una riga. – CrazyArm
@CrazyArm, per quanto ho capito, dovrai definire una forma personalizzata per '' ed è per questo che ho dato la soluzione come ho fatto io. Potresti essere in grado di estrarre la forma del simbolo dalla fonte del grafico a dispersione (o dalla dispersione stessa) e usarla con la forma personalizzata come input per 'legend'. –
Hooked
Grazie. Penso di capire come creare un singolo marcatore personalizzato nella legenda (un rettangolo o un cerchio come hai detto), ma non so come combinare due di essi. Questo (http://matplotlib.sourceforge.net/examples/api/scatter_piecharts.html) lo fa sovrapponendo più simboli, ma non so come lo mostrerebbero su una legenda. – CrazyArm