27  Múltiples gráficas

En esta sesión daremos un paso adelante en nuestra comprensión de la representación gráfica de datos al aprender cómo crear una gráfica con múltiples subgráficos.

A través de plt.subplots() estableceremos una estructura organizada donde cada eje representa un espacio único para un gráfico individual.

Esta disposición nos permitirá explorar nuestros datos de manera más profunda, identificando correlaciones y patrones de manera visual.

image.png
import pandas as pd
import matplotlib.pyplot as plt
from dateutil.parser import parse
f = "../data/Cuernavaca_Enero_comas.csv"
cuerna = pd.read_csv(f,index_col=0,parse_dates=True)
cuerna.index
DatetimeIndex(['2012-01-01 00:00:00', '2012-01-01 01:00:00',
               '2012-01-01 02:00:00', '2012-01-01 03:00:00',
               '2012-01-01 04:00:00', '2012-01-01 05:00:00',
               '2012-01-01 06:00:00', '2012-01-01 07:00:00',
               '2012-01-01 08:00:00', '2012-01-01 09:00:00',
               ...
               '2012-01-31 14:00:00', '2012-01-31 15:00:00',
               '2012-01-31 16:00:00', '2012-01-31 17:00:00',
               '2012-01-31 18:00:00', '2012-01-31 19:00:00',
               '2012-01-31 20:00:00', '2012-01-31 21:00:00',
               '2012-01-31 22:00:00', '2012-01-31 23:00:00'],
              dtype='datetime64[ns]', name='tiempo', length=744, freq=None)
cuerna.head()
To RH P Ws Wd Ig Ib Id
tiempo
2012-01-01 00:00:00 19.3 58 87415 0.0 26 0 0 0
2012-01-01 01:00:00 18.6 59 87602 0.0 26 0 0 0
2012-01-01 02:00:00 17.9 61 87788 0.0 30 0 0 0
2012-01-01 03:00:00 17.3 66 87554 0.0 30 0 0 0
2012-01-01 04:00:00 16.6 71 87321 0.0 27 0 0 0
fig, ax = plt.subplots(2,figsize=(10,4),sharex=True)

f1 = parse("2012-01-18")
f2 = f1 + pd.Timedelta("3d12h")

ax[0].plot(cuerna.Ig,label="Ig")
ax[0].plot(cuerna.Ib,label="Ib")
ax[0].plot(cuerna.Id,label="Id")

ax[1].plot(cuerna.To,label="To")

ax[0].set_xlim(f1,f2)
ax[0].legend()
# ax[0].grid()
ax[0].set_ylabel("Irradiancia[$W/m^2$]")
ax[0].set_ylim(0,1200)

ax[1].legend()
ax[1].set_xlabel("Tiempo [mm-dd HH]")
ax[1].set_ylabel("Temperatura [$^oC$]")
ax[1].set_ylim(0,30)
# ax[1].grid()

fig, (ax1,ax2) = plt.subplots(2,figsize=(10,4),sharex=True)

f1 = parse("2012-01-18")
f2 = f1 + pd.Timedelta("3d12h")

ax1.plot(cuerna.Ig,label="Ig")
ax1.plot(cuerna.Ib,label="Ib")
ax1.plot(cuerna.Id,label="Id")

ax2.plot(cuerna.To,label="To")

ax1.set_xlim(f1,f2)
ax1.legend()
ax1.set_ylabel("Irradiancia[$W/m^2$]")

ax2.legend()
ax2.set_xlabel("Tiempo [mm-dd HH]")
ax2.set_ylabel("Temperatura [$^oC$]")
Text(0, 0.5, 'Temperatura [$^oC$]')