Detecta la frecuencia al instante con una linea de tiempo tipo codigo de barras

6.7.16

Detecta la frecuencia al instante con una linea de tiempo tipo codigo de barras

Actualizado 2020-08-26 Lectura 1 min

Cuando solo importan las fechas en que ocurren eventos, una linea de tiempo tipo codigo de barras muestra la densidad con lineas verticales. Permite ver sesgos y concentraciones de periodos de un vistazo.

import pandas as pd
import matplotlib.pyplot as plt

dates = pd.to_datetime(
    [
        "2024-01-05",
        "2024-01-08",
        "2024-01-12",
        "2024-01-20",
        "2024-02-02",
        "2024-02-07",
        "2024-02-08",
        "2024-02-17",
        "2024-03-01",
        "2024-03-09",
        "2024-03-10",
        "2024-03-24",
        "2024-04-02",
        "2024-04-18",
        "2024-05-01",
    ]
)

fig, ax = plt.subplots(figsize=(6.4, 1.8))
ax.vlines(dates, ymin=0, ymax=1, color="#0f172a", linewidth=2)
ax.set_ylim(0, 1)
ax.set_yticks([])
ax.set_title("Linea de tiempo de alertas criticas")
ax.set_xlabel("Fecha")
ax.set_xlim(dates.min() - pd.Timedelta(days=3), dates.max() + pd.Timedelta(days=3))

ax.tick_params(axis="x", rotation=45)
ax.spines[["left", "top", "right"]].set_visible(False)

fig.tight_layout()

plt.show()

Es facil detectar sesgos y picos en los periodos.

Consejos de lectura #

  • Cuantas mas lineas haya, mas concentrados estan los eventos. Ayuda a comunicar picos o congestion reciente.
  • Cambiar la altura o el color de las lineas permite codificar tipos o pesos de eventos.
  • Si la serie temporal es larga, divide por mes o usa desplazamiento para mejorar la legibilidad.