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

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).


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.


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.