Gráficos de líneas transparentes Matplotlib

131

Estoy trazando dos trayectorias similares en matplotlib y me gustaría trazar cada una de las líneas con transparencia parcial para que el rojo (trazado en segundo lugar) no oscurezca el azul.

texto alternativo

EDITAR : Aquí está la imagen con líneas transparentes.

texto alternativo

Gus
fuente

Respuestas:

254

Llano y simple:

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

(Sé que no agrego nada nuevo, pero la respuesta directa debería ser visible).

Davoud Taghawi-Nejad
fuente
No puedo ver dónde se documenta el parámetro alfa. ¿Podría actualizar la respuesta para incluir dónde está documentado?
Alex Spurling
1
@AlexSpurling plt.plottoma argumentos de palabras clave para los Line2Dcuales el parámetro alfa, entre otros, es propiedad de.
Thirdwater
27

Después de trazar todas las líneas, pude establecer la transparencia de todas ellas de la siguiente manera:

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

EDITAR: vea la respuesta de Joe en los comentarios.

Gus
fuente
28
Todas las funciones de trazado de maplotlib toman un parámetro alfa directamente. Solo puedes hacer plt.plot(x, y, 'r-', alpha=0.7).
Joe Kington
3
Me gustaría ver la imagen actualizada, ¿podría agregarla a esta respuesta, por favor?
Sven Marnach
3
@ JoeKington: eso parece componer las líneas antes de aplicar la transparencia. ¿Hay alguna manera de hacerlo al revés, de modo que las líneas transparentes se sumen para oscurecerse?
nada101
5

Realmente depende de qué funciones esté usando para trazar las líneas, pero intente ver si el encendido que está usando toma un valor alfa y lo establece en algo así como 0.5. Si eso no funciona, intente obtener los objetos de línea y establezca sus valores alfa directamente.

moinudin
fuente
1
El comentario de @ joe-kington dice que todas las funciones de matplotlib toman un parámetro alfa, ¿su respuesta necesita una corrección o su comentario?
U3.1415926