Gráficos de linhas transparentes Matplotlib

131

Estou traçando duas trajetórias semelhantes no matplotlib e gostaria de plotar cada uma das linhas com transparência parcial para que o vermelho (segundo plotado) não oculte o azul.

texto alternativo

EDIT : Aqui está a imagem com linhas transparentes.

texto alternativo

Gus
fonte

Respostas:

254

Claro e simples:

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

(Eu sei que não adiciono nada de novo, mas a resposta direta deve estar visível).

Davoud Taghawi-Nejad
fonte
Não consigo ver onde o parâmetro alfa está documentado. Você poderia atualizar a resposta para incluir onde isso está documentado?
Alex Spurling
1
@AlexSpurling plt.plotleva os argumentos de palavra-chave para os Line2Dquais o parâmetro alfa, entre outros, é uma propriedade de.
Thirdwater
27

Depois de plotar todas as linhas, pude definir a transparência de todas elas da seguinte maneira:

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

EDIT: veja a resposta de Joe nos comentários.

Gus
fonte
28
Todas as funções de plotagem maplotlib usam um parâmetro alfa diretamente. Você pode simplesmente fazer plt.plot(x, y, 'r-', alpha=0.7).
Joe Kington
3
Ficaria feliz em ver a imagem atualizada - você poderia adicioná-la a esta resposta, por favor?
Sven Marnach
3
@ JoeKington: isso parece compor as linhas antes de aplicar a transparência. Existe uma maneira de fazer o contrário, de modo que as linhas transparentes se juntem para ficar mais escuras?
naught101
5

Realmente depende de quais funções você está usando para plotar as linhas, mas tente ver se o que você está usando usa um valor alfa e defina-o para algo como 0,5. Se isso não funcionar, tente obter os objetos de linha e defina seus valores alfa diretamente.

moinudin
fonte
1
O comentário de @ joe-kington diz que todas as funções do matplotlib usam um parâmetro alfa. Sua resposta está precisando de uma correção ou o comentário dele?
U3.1415926