Transparente Matplotlib-Liniendiagramme


131

Ich zeichne zwei ähnliche Trajektorien in matplotlib und möchte jede der Linien mit teilweiser Transparenz zeichnen, damit das Rot (geplottete Sekunde) das Blau nicht verdeckt.

Alt-Text

BEARBEITEN : Hier ist das Bild mit transparenten Linien.

Alt-Text

Antworten:


254

Schlicht und einfach:

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

(Ich weiß, ich füge nichts Neues hinzu, aber die einfache Antwort sollte sichtbar sein).


Ich kann nicht sehen, wo der Alpha-Parameter dokumentiert ist. Könnten Sie die Antwort aktualisieren, um anzugeben, wo dies dokumentiert ist?
Alex Spurling

1
@AlexSpurling the plt.plotnimmt Schlüsselwortargumente, für Line2Ddie der Alpha-Parameter unter anderem eine Eigenschaft von ist.
Thirdwater

27

Nachdem ich alle Linien gezeichnet hatte, konnte ich die Transparenz aller wie folgt einstellen:

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

EDIT: siehe Joes Antwort in den Kommentaren.


28
Alle Maplotlib-Plotfunktionen verwenden direkt einen Alpha-Parameter. Du kannst es einfach tun plt.plot(x, y, 'r-', alpha=0.7).
Joe Kington

3
Ich würde mich über das aktualisierte Bild freuen - können Sie es bitte zu dieser Antwort hinzufügen?
Sven Marnach

3
@ JoeKington: Das scheint die Linien zusammenzusetzen, bevor die Transparenz angewendet wird. Gibt es eine Möglichkeit, es umgekehrt zu machen, sodass sich die transparenten Linien addieren, um dunkler zu werden?
naught101

5

Es hängt wirklich davon ab, welche Funktionen Sie zum Zeichnen der Linien verwenden. Versuchen Sie jedoch, festzustellen, ob das von Ihnen verwendete On einen Alpha-Wert annimmt, und setzen Sie ihn auf etwa 0,5. Wenn dies nicht funktioniert, versuchen Sie, die Linienobjekte abzurufen und ihre Alpha-Werte direkt festzulegen.


1
Der Kommentar von @ joe-kington besagt, dass alle matplotlib-Funktionen einen Alpha-Parameter annehmen. Benötigt Ihre Antwort eine Korrektur oder seinen Kommentar?
U3.1415926
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.