Update app.py
Browse files
app.py
CHANGED
@@ -74,10 +74,10 @@ def calcular_promedio_desviacion(df, n_replicas, unidad_medida):
|
|
74 |
|
75 |
return df
|
76 |
|
77 |
-
def generar_graficos(df_valid, n_replicas, unidad_medida,
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
col_predicha_num = "Concentración Predicha Numérica"
|
82 |
col_real_promedio = f"Concentración Real Promedio ({unidad_medida})"
|
83 |
col_desviacion = f"Desviación Estándar ({unidad_medida})"
|
@@ -97,6 +97,18 @@ def generar_graficos(df_valid, n_replicas, unidad_medida, color_puntos, estilo_p
|
|
97 |
|
98 |
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 6))
|
99 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
# Gráfico de dispersión con línea de regresión
|
101 |
if mostrar_puntos:
|
102 |
if n_replicas > 1:
|
@@ -281,10 +293,10 @@ def actualizar_analisis(df, n_replicas, unidad_medida):
|
|
281 |
# Generar gráfico con opciones predeterminadas
|
282 |
fig = generar_graficos(
|
283 |
df_valid, n_replicas, unidad_medida,
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
mostrar_linea_ajuste=True, mostrar_linea_ideal=True, mostrar_puntos=True
|
289 |
)
|
290 |
informe, estado = generar_informe_completo(df_valid, n_replicas, unidad_medida)
|
@@ -292,10 +304,10 @@ def actualizar_analisis(df, n_replicas, unidad_medida):
|
|
292 |
return estado, fig, informe, df
|
293 |
|
294 |
def actualizar_graficos(df, n_replicas, unidad_medida,
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
mostrar_linea_ajuste, mostrar_linea_ideal, mostrar_puntos):
|
300 |
if df is None or df.empty:
|
301 |
return None
|
@@ -318,10 +330,10 @@ def actualizar_graficos(df, n_replicas, unidad_medida,
|
|
318 |
# Generar gráfico con opciones seleccionadas
|
319 |
fig = generar_graficos(
|
320 |
df_valid, n_replicas, unidad_medida,
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
mostrar_linea_ajuste, mostrar_linea_ideal, mostrar_puntos
|
326 |
)
|
327 |
|
@@ -585,41 +597,45 @@ with gr.Blocks(theme=gr.themes.Soft()) as interfaz:
|
|
585 |
|
586 |
# Opciones y botones debajo del gráfico
|
587 |
with gr.Row():
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
|
|
|
|
|
|
592 |
)
|
593 |
estilo_puntos_dropdown = gr.Dropdown(
|
594 |
choices=["o", "s", "^", "D", "v", "<", ">", "h", "H", "p", "*", "X", "d"],
|
595 |
value="o",
|
596 |
label="Estilo de Puntos"
|
597 |
)
|
598 |
-
|
599 |
-
choices=
|
600 |
-
value="
|
601 |
-
label="
|
602 |
)
|
603 |
estilo_linea_ajuste_dropdown = gr.Dropdown(
|
604 |
choices=["-", "--", "-.", ":"],
|
605 |
value="-",
|
606 |
label="Estilo Línea de Ajuste"
|
607 |
)
|
|
|
608 |
with gr.Row():
|
609 |
-
|
610 |
-
choices=
|
611 |
-
value="
|
612 |
-
label="
|
613 |
)
|
614 |
estilo_linea_ideal_dropdown = gr.Dropdown(
|
615 |
choices=["--", "-", "-.", ":"],
|
616 |
value="--",
|
617 |
label="Estilo Línea Ideal"
|
618 |
)
|
619 |
-
|
620 |
-
choices=
|
621 |
-
value="
|
622 |
-
label="
|
623 |
)
|
624 |
mostrar_linea_ajuste = gr.Checkbox(value=True, label="Mostrar Línea de Ajuste")
|
625 |
mostrar_linea_ideal = gr.Checkbox(value=True, label="Mostrar Línea Ideal")
|
@@ -654,10 +670,10 @@ with gr.Blocks(theme=gr.themes.Soft()) as interfaz:
|
|
654 |
fn=actualizar_graficos,
|
655 |
inputs=[
|
656 |
tabla_output, replicas_slider, unidad_input,
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
mostrar_linea_ajuste, mostrar_linea_ideal, mostrar_puntos
|
662 |
],
|
663 |
outputs=graficos_output
|
|
|
74 |
|
75 |
return df
|
76 |
|
77 |
+
def generar_graficos(df_valid, n_replicas, unidad_medida, palette_puntos, estilo_puntos,
|
78 |
+
palette_linea_ajuste, estilo_linea_ajuste,
|
79 |
+
palette_linea_ideal, estilo_linea_ideal,
|
80 |
+
palette_barras_error, mostrar_linea_ajuste, mostrar_linea_ideal, mostrar_puntos):
|
81 |
col_predicha_num = "Concentración Predicha Numérica"
|
82 |
col_real_promedio = f"Concentración Real Promedio ({unidad_medida})"
|
83 |
col_desviacion = f"Desviación Estándar ({unidad_medida})"
|
|
|
97 |
|
98 |
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 6))
|
99 |
|
100 |
+
# Obtener colores de las paletas
|
101 |
+
colors_puntos = sns.color_palette(palette_puntos, as_cmap=False)
|
102 |
+
colors_linea_ajuste = sns.color_palette(palette_linea_ajuste, as_cmap=False)
|
103 |
+
colors_linea_ideal = sns.color_palette(palette_linea_ideal, as_cmap=False)
|
104 |
+
colors_barras_error = sns.color_palette(palette_barras_error, as_cmap=False)
|
105 |
+
|
106 |
+
# Seleccionar colores
|
107 |
+
color_puntos = colors_puntos[0]
|
108 |
+
color_linea_ajuste = colors_linea_ajuste[0]
|
109 |
+
color_linea_ideal = colors_linea_ideal[0]
|
110 |
+
color_barras_error = colors_barras_error[0]
|
111 |
+
|
112 |
# Gráfico de dispersión con línea de regresión
|
113 |
if mostrar_puntos:
|
114 |
if n_replicas > 1:
|
|
|
293 |
# Generar gráfico con opciones predeterminadas
|
294 |
fig = generar_graficos(
|
295 |
df_valid, n_replicas, unidad_medida,
|
296 |
+
palette_puntos='deep', estilo_puntos='o',
|
297 |
+
palette_linea_ajuste='muted', estilo_linea_ajuste='-',
|
298 |
+
palette_linea_ideal='bright', estilo_linea_ideal='--',
|
299 |
+
palette_barras_error='pastel',
|
300 |
mostrar_linea_ajuste=True, mostrar_linea_ideal=True, mostrar_puntos=True
|
301 |
)
|
302 |
informe, estado = generar_informe_completo(df_valid, n_replicas, unidad_medida)
|
|
|
304 |
return estado, fig, informe, df
|
305 |
|
306 |
def actualizar_graficos(df, n_replicas, unidad_medida,
|
307 |
+
palette_puntos, estilo_puntos,
|
308 |
+
palette_linea_ajuste, estilo_linea_ajuste,
|
309 |
+
palette_linea_ideal, estilo_linea_ideal,
|
310 |
+
palette_barras_error,
|
311 |
mostrar_linea_ajuste, mostrar_linea_ideal, mostrar_puntos):
|
312 |
if df is None or df.empty:
|
313 |
return None
|
|
|
330 |
# Generar gráfico con opciones seleccionadas
|
331 |
fig = generar_graficos(
|
332 |
df_valid, n_replicas, unidad_medida,
|
333 |
+
palette_puntos, estilo_puntos,
|
334 |
+
palette_linea_ajuste, estilo_linea_ajuste,
|
335 |
+
palette_linea_ideal, estilo_linea_ideal,
|
336 |
+
palette_barras_error,
|
337 |
mostrar_linea_ajuste, mostrar_linea_ideal, mostrar_puntos
|
338 |
)
|
339 |
|
|
|
597 |
|
598 |
# Opciones y botones debajo del gráfico
|
599 |
with gr.Row():
|
600 |
+
# Paletas de colores disponibles en Seaborn
|
601 |
+
paletas_colores = ["deep", "muted", "pastel", "bright", "dark", "colorblind", "Set1", "Set2", "Set3"]
|
602 |
+
|
603 |
+
palette_puntos_dropdown = gr.Dropdown(
|
604 |
+
choices=paletas_colores,
|
605 |
+
value="deep",
|
606 |
+
label="Paleta para Puntos"
|
607 |
)
|
608 |
estilo_puntos_dropdown = gr.Dropdown(
|
609 |
choices=["o", "s", "^", "D", "v", "<", ">", "h", "H", "p", "*", "X", "d"],
|
610 |
value="o",
|
611 |
label="Estilo de Puntos"
|
612 |
)
|
613 |
+
palette_linea_ajuste_dropdown = gr.Dropdown(
|
614 |
+
choices=paletas_colores,
|
615 |
+
value="muted",
|
616 |
+
label="Paleta Línea de Ajuste"
|
617 |
)
|
618 |
estilo_linea_ajuste_dropdown = gr.Dropdown(
|
619 |
choices=["-", "--", "-.", ":"],
|
620 |
value="-",
|
621 |
label="Estilo Línea de Ajuste"
|
622 |
)
|
623 |
+
|
624 |
with gr.Row():
|
625 |
+
palette_linea_ideal_dropdown = gr.Dropdown(
|
626 |
+
choices=paletas_colores,
|
627 |
+
value="bright",
|
628 |
+
label="Paleta Línea Ideal"
|
629 |
)
|
630 |
estilo_linea_ideal_dropdown = gr.Dropdown(
|
631 |
choices=["--", "-", "-.", ":"],
|
632 |
value="--",
|
633 |
label="Estilo Línea Ideal"
|
634 |
)
|
635 |
+
palette_barras_error_dropdown = gr.Dropdown(
|
636 |
+
choices=paletas_colores,
|
637 |
+
value="pastel",
|
638 |
+
label="Paleta Barras de Error"
|
639 |
)
|
640 |
mostrar_linea_ajuste = gr.Checkbox(value=True, label="Mostrar Línea de Ajuste")
|
641 |
mostrar_linea_ideal = gr.Checkbox(value=True, label="Mostrar Línea Ideal")
|
|
|
670 |
fn=actualizar_graficos,
|
671 |
inputs=[
|
672 |
tabla_output, replicas_slider, unidad_input,
|
673 |
+
palette_puntos_dropdown, estilo_puntos_dropdown,
|
674 |
+
palette_linea_ajuste_dropdown, estilo_linea_ajuste_dropdown,
|
675 |
+
palette_linea_ideal_dropdown, estilo_linea_ideal_dropdown,
|
676 |
+
palette_barras_error_dropdown,
|
677 |
mostrar_linea_ajuste, mostrar_linea_ideal, mostrar_puntos
|
678 |
],
|
679 |
outputs=graficos_output
|