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.