Considera los siguientes datos a modo de ejemplo:
# Datos
x = [1, 2, 3, 4, 5, 6, 7]
y = [10, 10, 14, 14, 12, 16, 16]
step
Un gráfico de escalones conecta los puntos con segmentos horizontales y verticales en lugar de una línea diagonal, lo que representa mejor valores que se mantienen constantes y saltan en un punto discreto, como un cambio de precio o un recuento de inventario. Usa ax.step con la misma sintaxis que un plot normal.
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.step(x, y)
# plt.show()

El argumento where controla dónde ocurre el salto vertical respecto a cada punto: "pre" (por defecto) escalona antes del punto, "post" escalona después, y "mid" coloca el salto a medio camino entre dos puntos.
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.step(x, y, where = "post")
# plt.show()

Colores
Personaliza la línea igual que en un gráfico de líneas normal, con color, linewidth y linestyle.
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.step(x, y, color = "#C44E52", linewidth = 2)
# plt.show()

Marcadores
Añade marker para marcar también los puntos de datos reales sobre los escalones.
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.step(x, y, marker = "o")
# plt.show()

Para sombrear el área bajo un gráfico de escalones, usa fill_between con un argumento step a juego, en lugar de ax.fill, que solo interpola en diagonal entre puntos.
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.step(x, y, where = "post")
ax.fill_between(x, y, step = "post", alpha = 0.3)
# plt.show()

También te puede interesar