diff --git a/Book/Racimo/data2023.md b/Book/Racimo/data2023.md
index 91d074e63a97cfacd8943c16f3ccc5178d9d44e0..3ce7dbc5ee72b37cda7d039cab069b1929092fba 100644
--- a/Book/Racimo/data2023.md
+++ b/Book/Racimo/data2023.md
@@ -162,6 +162,9 @@ display(bucaramanga_map)
 
 import pandas as pd
 import numpy as np
+import matplotlib.pyplot as plt
+import matplotlib.dates as mdates
+
 import plotly.express as px
 import plotly.graph_objects as go
 
@@ -176,6 +179,9 @@ Estaciones = [('E2_00023','Grupo Halley',7.1393716,-73.1210968),
             ('mE1_00012','I.E. Café Madrid',7.1631654, -73.14033300)
              ]
 
+fecha_inicio = "2023-02-24 00:00:00"
+fecha_fin = "2023-12-20 00:00:00"
+
 Nest=len(Estaciones)
 data=[[] for i in range(Nest)]
 
@@ -204,86 +210,60 @@ for i in range(1,Nest):
     data[i]['Estacion'] = est[1]
     data[i]['id_est'] = int(i)
 
-for i in range(1,Nest):
-    data[i] = data[i].assign(row_number=range(len(data[i])))
-    data[i]['ts'] = data[i].index
-    data[i].set_index(['row_number'], inplace=True) 
 
-    dat[i] = dat[i].assign(row_number=range(len(dat[i])))
-    dat[i]['ts'] = dat[i].index
-    dat[i].set_index(['row_number'], inplace=True)
 
-data_all = data[1].copy()
-dat_all = dat[1].copy()
-for i in range(2,Nest):
-    data_all = data_all.merge(data[i],  how='outer')
-    dat_all = dat_all.merge(dat[i],  how='outer')
+fig = plt.subplots(figsize=(20,20))
 
+col = 2
+row = int( (Nest-1)/col )
+i=0; j=0
+for ii in range(1,Nest):
+    ax = plt.subplot2grid((row,col), (j,i) ) 
+    # Crear gráfico
+    data[ii].pm25.plot(ax=ax,label=' ' , marker='o',ls="", markersize=0.5, alpha=0.2)
+    dat[ii].pm25_r.plot(ax=ax,label=' Promedio PM 25 ', ls="-", color="navy")
 
-fig = px.scatter(data_all, x="ts", y="pm25",
-                     color="Estacion", hover_name="Estacion"
-                    )
+    ax.axhline(y=37, color='r', linestyle='--', label='Nivel Máximo Permisible 24 horas (37 $\mu g /m^3$)')
+    ax.axhline(y=12, color='orange', linestyle='--', label='Nivel Aceptable Permisible 24 horas (12 $\mu g /m^3$)')
 
+    Ndat= dat[ii].shape[0]
+    ax.text(dat[ii].index[int(0.5*Ndat)], 50, Estaciones[ii][1], ha="center", va="bottom", fontsize=25, fontweight="bold")
     
-fig2 = px.line(dat_all, x="ts", y="pm25_r",
-       color="Estacion",
-       hover_name="Estacion" )
-
-
-fig.update_traces(marker={'size': 2, 'opacity':0.3 })
-
-fig3 = go.Figure(data=fig.data + fig2.data)
-
-fig3.add_hline(y=12, line_dash="dot", row="all", col="all",
-              annotation_text="<b>Nivel Aceptable Permisible 24 horas</b> <br> (12 \mu g /m^3)", 
-              annotation_position="bottom right",
-              line_color="yellow",
-              annotation=dict(font_size=12, font_family="Times New Roman"),)
-
-fig3.add_hline(y=37, line_dash="dot", row="all", col="all",
-              annotation_text="<b>Nivel Máximo Permisible 24 horas</b> <br> (37 \mu g /m^3)", 
-              annotation_position="bottom right",
-              line_color="red",
-              annotation=dict(font_size=12,  font_family="Times New Roman"),)
-
-fig3.update_layout ( xaxis_title="Fecha",
-    yaxis_title="PM 25 [ \mu g / m^3 ]",
-    autosize=True,
-    #width=790,
-    #height=500,
-    margin=dict(
-        l=50,
-        r=50,
-        b=50,
-        t=50,
-        pad=4),
-    font=dict(
-        family="Rockwell",
-        size=12,
-        #color="RebeccaPurple"
-    ),
-    legend=dict(
-        title=None, orientation="h", y=1.05, yanchor="bottom", x=0.5, xanchor="center"
-    ),
-    plot_bgcolor='rgba(0,0,0,0)'
-    )
-
-
-fig3.update_xaxes( ticks='outside',
-    showline=True,
-    linecolor='black',
-    #mirror=True,
-    #range=[1600,2020],
-    )
-
-fig3.update_yaxes( #ticks='outside',
-    #showline=True,
-    #linecolor='black',
-    #mirror=True,
-    range=[-2,75],
-    )
-
-fig3.show()
+    if i==0:
+        ax.set_ylabel("PM 25 $[\, \mu g / m^3\, ]$", fontsize=25, fontweight="bold")
+        ax.tick_params(which='major', pad=1, length=8, labelsize=15, direction="inout", width=1.5)
+       
+
+        if j==0:
+            ax.legend(loc="upper left")
+    else:
+        ax.axes.yaxis.set_visible(False)
+
+
+    if j==(row-1):
+        ax.xaxis.set_major_formatter(mdates.DateFormatter('%b'))
+        plt.xticks(rotation=0)
+        ax.set_xlabel("")
+        #ax.xaxis.set_major_locator(mdates.DayLocator(interval=32))
+        ax.tick_params(which='minor', labelsize=18, length=8)
+         
+    else:
+        ax.axes.xaxis.set_visible(False)
+
+
+    ax.set_ylim(-2., 75)
+    ax.set_xlim(fecha_inicio, fecha_fin)
+    
+    i+=1
+    if i > (col-1):
+        i=0
+        j+=1
+
+
+plt.subplots_adjust(left=0.06, bottom=0.1, right=0.99, top=0.99,  wspace=0.01, hspace=0)
+
+plt.show()
+
 
 
 ```
@@ -315,6 +295,7 @@ Estaciones = [('E2_00023','Grupo Halley',7.1393716,-73.1210968),
             ('mE1_00012','I.E. Café Madrid',7.1631654, -73.14033300)
              ]
 
+
 Nest=len(Estaciones)
 data=[[] for i in range(Nest)]