Ho un grafico in cui vengono utilizzati colori diversi per diversi parametri e dove vengono utilizzati stili di linea diversi per diversi algoritmi. L'obiettivo è confrontare i risultati dei diversi algoritmi eseguiti con parametri simili. Significa che in totale utilizzo 4 colori diversi e 3 stili di linea diversi, per un totale di 12 grafici sullo stesso grafico.matplotlib: 2 legende diverse sullo stesso grafico
Realizzo la legenda in base ai colori, associando ciascun colore al parametro corrispondente. Ora mi piacerebbe visualizzare una seconda legenda sullo stesso grafico, con il significato di ogni stile di linea. È possibile raggiungerlo? Come?
Ecco ciò che il mio codice è simile in realtà:
colors = ['b', 'r', 'g', 'c']
cc = cycle(c)
for p in parameters:
d1 = algo1(p)
d2 = algo2(p)
d3 = algo3(p)
pyplot.hold(True)
c = next(cc)
pyplot.plot(d1, '-', color=c, label="d1")
pyplot.plot(d1, '--', color=c)
pyplot.plot(d2, '.-', color=c)
pyplot.legend()
Quindi la chiave è in 'add_artist' ... per qualche motivo insano Matplotlib decide che conosce meglio e cancella la legenda originale, quindi è necessario aggiungerla di nuovo in seguito. Grazie per l'aiuto, ho intenzione di bere una birra. –