Curso matplotlib - Elementos auxiliares (elemento de passo)
O elemento de passo, ou de “escada”, é uma forma de desenhar linhas em “escadinha”. São úteis para fazer gráficos de acumulação.
Para adicionar uma linha na forma de escada, passamos duas sequências contendo os valores de x
e y
da escada através de plt.step()
.
Exemplo:
plt.figure(figsize=(8,6))
plt.scatter(x,y)
plt.step(x,y)
plt.show()
Figura 1 - Gráfico de dispersão com reta em “escadinha”.
As linhas são desenhadas utilizando o valor de x
como referência, e temos 3 opções para a referência. Para alterar estas opções, basta passar o parâmetro where
com uma das seguintes opções:
'pre'
(padrão): a linha é desenhada primeiro no eixoy
, e depois vai para a direita no eixox
.
Exemplo:
plt.figure(figsize=(8,6))
plt.scatter(x,y)
plt.step(x,y, where='pre')
plt.show()
Figura 2 - Gráfico de dispersão com reta em “escadinha” utilizando o where='pre'
.
'post'
: a linha é desenhada primeiro no eixox
, e depois vai para a direção do eixoy
.
Exemplo:
plt.figure(figsize=(8,6))
plt.scatter(x,y)
plt.step(x,y, where='post')
plt.show()
Figura 3 - Gráfico de dispersão com reta em “escadinha” utilizando o where='post'
.
'mid'
: a linha é desenhada até a metade do eixox
, depois “sobe” até o valor dey
, e então segue até a outra metade do eixox
.
plt.figure(figsize=(8,6))
plt.scatter(x,y)
plt.step(x,y, where='mid')
plt.show()
Figura 4 - Gráfico de dispersão com reta em “escadinha” utilizando o where='mid'
.
ATENÇÃO: observe que os pontos dos gráficos acima foram adicionados utilizando o plt.scatter()
, e não são provenientes do plt.step()
. Contudo, é possível inserir os pontos no gráfico, passando o parâmetro marker
em plt.step()
, seguindo a mesma lógica vista anteriormente.
Por exemplo:
plt.figure(figsize=(8,6))
plt.step(x,y, where='mid', marker="o")
plt.show()
Figura 5 - Gráfico de passo com reta em “escadinha” utilizando o where='mid'
.
É possível editar as linhas e os marcadores do plt.step()
de forma muito semelhante ao que vimos anteriormente. Maiores informações na documentação.