web-dev-qa-db-fra.com

Tracer avec un marqueur transparent mais un bord non transparent

J'essaie de faire un tracé dans matplotlib avec des marqueurs transparents qui ont une couleur fixe Edge. Cependant, je n'arrive pas à obtenir un marqueur avec un remplissage transparent.

J'ai ici un exemple de travail minimum:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(10)
y1 = 2*x + 1
y2 = 3*x - 5

plt.plot(x,y1, 'o-', lw=6, ms=14)
plt.plot(x,y2, 'o', ms=14, markerfacecolor=None, alpha=0.5, markeredgecolor='red', markeredgewidth=5)

plt.show()

J'ai essayé deux techniques que j'ai trouvées en ligne pour y parvenir: 1) Définition du paramètre alpha. Cependant, cela rend également le marqueur Edge transparent, ce qui n'est pas l'effet souhaité. 2) Définition de markerfacecolor = None, bien que cela n'ait aucun effet sur mon tracé

Y a-t-il une solution à cela s'il vous plaît?

29
IanRoberts

C'est délicat dans Matplotlib ... vous devez utiliser une chaîne "None" au lieu de la valeur None, alors vous pouvez simplement faire:

plt.plot(x,y2, 'o', ms=14, markerfacecolor="None",
         markeredgecolor='red', markeredgewidth=5)
43