Tracés de lignes transparentes Matplotlib

131

Je trace deux trajectoires similaires dans matplotlib et j'aimerais tracer chacune des lignes avec une transparence partielle afin que le rouge (tracé en seconde) n'obscurcisse pas le bleu.

texte alternatif

EDIT : Voici l'image avec des lignes transparentes.

texte alternatif

Gus
la source

Réponses:

254

Clair et simple:

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

(Je sais que je n'ajoute rien de nouveau, mais la réponse simple devrait être visible).

Davoud Taghawi-Nejad
la source
Je ne vois pas où le paramètre alpha est documenté. Pourriez-vous mettre à jour la réponse pour inclure où cela est documenté?
Alex Spurling
1
@AlexSpurling plt.plotprend des arguments de mots clés pour Line2Dlesquels le paramètre alpha, entre autres, est une propriété de.
Thirdwater
27

Après avoir tracé toutes les lignes, j'ai pu définir la transparence de toutes comme suit:

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

EDIT: veuillez voir la réponse de Joe dans les commentaires.

Gus
la source
28
Toutes les fonctions de traçage de maplotlib prennent directement un paramètre alpha. Vous pouvez simplement le faire plt.plot(x, y, 'r-', alpha=0.7).
Joe Kington
3
Je serais heureux de voir l'image mise à jour - pourriez-vous l'ajouter à cette réponse s'il vous plaît?
Sven Marnach
3
@JoeKington: cela semble composer les lignes avant d'appliquer la transparence. Y a-t-il un moyen de faire l'inverse, de sorte que les lignes transparentes s'additionnent pour devenir plus sombres?
rien101
5

Cela dépend vraiment des fonctions que vous utilisez pour tracer les lignes, mais essayez de voir si le sur que vous utilisez prend une valeur alpha et définissez-la sur quelque chose comme 0,5. Si cela ne fonctionne pas, essayez d'obtenir les objets ligne et définissez directement leurs valeurs alpha.

moinudin
la source
1
Le commentaire de @ joe-kington dit que toutes les fonctions matplotlib prennent un paramètre alpha, votre réponse nécessite-t-elle une correction ou son commentaire?
U3.1415926