Trame di linea trasparente matplotlib


131

Sto disegnando due traiettorie simili in matplotlib e mi piacerebbe tracciare ciascuna delle linee con trasparenza parziale in modo che il rosso (secondo grafico) non oscuri il blu.

testo alternativo

EDIT : ecco l'immagine con linee trasparenti.

testo alternativo

Risposte:


254

Chiaro e semplice:

plt.plot(x, y, 'r-', alpha=0.7)

(So ​​di non aggiungere nulla di nuovo, ma la risposta semplice dovrebbe essere visibile).


Non riesco a vedere dove è documentato il parametro alpha. Potresti aggiornare la risposta per includere dove questo è documentato?
Alex Spurling,

1
@AlexSpurling the plt.plotaccetta argomenti per parole chiave per i Line2Dquali il parametro alpha, tra gli altri, è una proprietà di.
Thirdwater

27

Dopo aver tracciato tutte le linee, sono stato in grado di impostare la trasparenza di tutte come segue:

for l in fig_field.gca().lines:
    l.set_alpha(.7)

EDIT: si prega di vedere la risposta di Joe nei commenti.


28
Tutte le funzioni di tracciamento di maplotlib accettano direttamente un parametro alfa. Puoi solo fare plt.plot(x, y, 'r-', alpha=0.7).
Joe Kington,

3
Sarei felice di vedere l'immagine aggiornata - potresti aggiungerla a questa risposta per favore?
Sven Marnach,

3
@JoeKington: sembra comporre le linee prima di applicare la trasparenza. C'è un modo per farlo al contrario, in modo che le linee trasparenti si sommino per diventare più scure?
naught101

5

Dipende davvero dalle funzioni che stai usando per tracciare le linee, ma prova a vedere se l'on sta usando prende un valore alfa e lo imposta su qualcosa come 0,5. Se ciò non funziona, prova a ottenere gli oggetti linea e imposta direttamente i loro valori alfa.


1
Il commento di @ joe-kington afferma che tutte le funzioni di matplotlib accettano un parametro alfa, la tua risposta necessita di una correzione o del suo commento?
U3.1415926,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.