diff --git a/zarrviewer b/zarrviewer index 31c3a86..2969f78 100755 --- a/zarrviewer +++ b/zarrviewer @@ -38,6 +38,12 @@ def main(): help="Número de registros a graficar en series de tiempo (default: 50)") parser.add_argument("--frame", type=int, default=-1, help="Índice del frame temporal a graficar en mapas (default: -1, el último)") + + # NUEVOS ARGUMENTOS PARA LIMITAR LA BARRA DE COLORES (caxis) + parser.add_argument("--vmin", type=float, default=None, + help="Valor mínimo para la barra de colores (caxis min)") + parser.add_argument("--vmax", type=float, default=None, + help="Valor máximo para la barra de colores (caxis max)") args = parser.parse_args() @@ -195,6 +201,12 @@ def main(): ds_plot = ds_plot.assign_coords({lat_name: lat_arr, lon_name: lon_arr}) plot_kwargs['x'] = lon_name plot_kwargs['y'] = lat_name + + # Aplicamos vmin y vmax si el usuario los especificó + if args.vmin is not None: + plot_kwargs['vmin'] = args.vmin + if args.vmax is not None: + plot_kwargs['vmax'] = args.vmax plt.figure(figsize=(8, 10)) cmap_choice = 'Blues' if var_name in ['tp', 'sd', 'snowc', 'RAINNC', 'RAINC'] else 'viridis' @@ -245,6 +257,11 @@ def main(): plt.figure(figsize=(10, 5)) ds_plot.plot.line(marker='o', linestyle='-', color='#1f77b4') plt.title(f"Serie de tiempo: {var_name} ({dim_name}: {casted_val})") + + # Aplicamos ylim si el usuario especificó vmin o vmax para la serie de tiempo + if args.vmin is not None or args.vmax is not None: + plt.ylim(bottom=args.vmin, top=args.vmax) + plt.grid(True, linestyle='--', alpha=0.6) nombre_imagen = f"serie_{var_name}_{casted_val}.png" @@ -260,6 +277,11 @@ def main(): plt.figure(figsize=(10, 5)) ds_plot.plot.line(marker='o') plt.title(f"Serie global: {var_name}") + + # Aplicamos ylim si el usuario especificó vmin o vmax para la serie global + if args.vmin is not None or args.vmax is not None: + plt.ylim(bottom=args.vmin, top=args.vmax) + plt.grid(True, linestyle='--', alpha=0.6) nombre_imagen = f"serie_global_{var_name}.png"