Series de tiempo en Matplotlib — 5:15 min

  • 5:15 min | Última modificación: Octubre 6, 2021 | YouTube

En este tutorial se aborda el tema de visualización de series de tiempo.

[1]:
import matplotlib.pyplot as plt
import pandas as pd

df = pd.read_csv(
    "https://raw.githubusercontent.com/jdvelasq/datalabs/master/datasets/sutter.csv",
)

display(df.head(), df.dtypes)
time value
0 1946-01-01 890
1 1946-02-01 992
2 1946-03-01 979
3 1946-04-01 959
4 1946-05-01 1110
time     object
value     int64
dtype: object
[2]:
#
# Convierte la columna time a un objeto datetime
#
df.time = pd.to_datetime(df.time, errors='coerce')

#
# Convierte la columna time en el indice de las
# filas
#
df = df.set_index('time')

display(
    df.head(),
    df.dtypes
)
value
time
1946-01-01 890
1946-02-01 992
1946-03-01 979
1946-04-01 959
1946-05-01 1110
value    int64
dtype: object
[3]:
#
# Gráfica de la serie de tiempo usando Matplotlib
#
_ = df.plot(
    color='tab:blue',
    figsize=(11,4),
    marker='.',
)

#
# Línea vertical
#
plt.axvline(
    '1964-01-01',
    color='red',
    linestyle='--',
)

#
# Línea horizontal
#
plt.axhline(
    3000,
    color='green',
)


plt.gca().spines["left"].set_color("gray")
plt.gca().spines["bottom"].set_color("gray")
plt.gca().spines["top"].set_visible(False)
plt.gca().spines["right"].set_visible(False)
../../../_images/ciencia_datos_matplotlib_notebooks_1-12_time_series_4_0.png
[4]:
#
# Visualización de un rango de tiempo
#
df_subset = df['1954-01-01':'1959-12-01']

_ = df_subset.plot(
    color='tab:blue',
    figsize=(11,4),
    marker='.',
)

plt.gca().spines["left"].set_color("gray")
plt.gca().spines["bottom"].set_color("gray")
plt.gca().spines["top"].set_visible(False)
plt.gca().spines["right"].set_visible(False)
../../../_images/ciencia_datos_matplotlib_notebooks_1-12_time_series_5_0.png
[5]:
#
# Regiones de interes
#
_ = df.plot(
    color='tab:blue',
    figsize=(11,4),
    marker='.',
)

plt.axvspan(
    '1954-01-01',
    '1957-12-01',
    color='tab:gray',
    alpha=0.3,
)


plt.axhspan(
    3000,
    4000,
    color='tab:cyan',
    alpha=0.3,
)

plt.gca().spines["left"].set_color("gray")
plt.gca().spines["bottom"].set_color("gray")
plt.gca().spines["top"].set_visible(False)
plt.gca().spines["right"].set_visible(False)
../../../_images/ciencia_datos_matplotlib_notebooks_1-12_time_series_6_0.png