Update app.py
Browse files
app.py
CHANGED
@@ -9,6 +9,27 @@ import docx
|
|
9 |
from docx.shared import Inches, Pt
|
10 |
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
|
11 |
import os
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
|
13 |
def ajustar_decimales_evento(df, decimales):
|
14 |
df = df.copy()
|
@@ -47,6 +68,13 @@ def generar_graficos(df_valid, n_replicas, unidad_medida,
|
|
47 |
color_linea_ideal, estilo_linea_ideal,
|
48 |
color_barras_error,
|
49 |
mostrar_linea_ajuste, mostrar_linea_ideal, mostrar_puntos):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
col_predicha_num = "Concentraci贸n Predicha Num茅rica"
|
51 |
col_real_promedio = f"Concentraci贸n Real Promedio ({unidad_medida})"
|
52 |
col_desviacion = f"Desviaci贸n Est谩ndar ({unidad_medida})"
|
@@ -500,6 +528,10 @@ def calcular_regresion_tabla_principal(df, unidad_medida, filas_seleccionadas_re
|
|
500 |
if df is None or df.empty:
|
501 |
return "Datos insuficientes", None, None, None
|
502 |
|
|
|
|
|
|
|
|
|
503 |
col_concentracion = "Concentraci贸n Predicha Num茅rica"
|
504 |
col_real_promedio = f"Concentraci贸n Real Promedio ({unidad_medida})"
|
505 |
col_desviacion = f"Desviaci贸n Est谩ndar ({unidad_medida})"
|
@@ -638,6 +670,7 @@ def iniciar_con_ejemplo():
|
|
638 |
3
|
639 |
)
|
640 |
|
|
|
641 |
with gr.Blocks(theme=gr.themes.Soft()) as interfaz:
|
642 |
gr.Markdown("""
|
643 |
# 馃搳 Sistema Avanzado de Calibraci贸n con An谩lisis Estad铆stico
|
|
|
9 |
from docx.shared import Inches, Pt
|
10 |
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
|
11 |
import os
|
12 |
+
from matplotlib.colors import to_hex
|
13 |
+
|
14 |
+
|
15 |
+
def safe_color(c):
|
16 |
+
if isinstance(c, str):
|
17 |
+
c = c.strip()
|
18 |
+
if c.lower().startswith('rgba('):
|
19 |
+
# Extraer valores num茅ricos del string rgba
|
20 |
+
vals = c.strip('rgba()').split(',')
|
21 |
+
vals = [v.strip() for v in vals]
|
22 |
+
if len(vals) == 4:
|
23 |
+
r, g, b, a = [float(x) for x in vals]
|
24 |
+
# Los valores en rgba(...) parecen ser mayores a 1, interpretamos que est谩n en escala 0-255.
|
25 |
+
# Convertimos a rango [0,1]:
|
26 |
+
r /= 255.0
|
27 |
+
g /= 255.0
|
28 |
+
b /= 255.0
|
29 |
+
# Convertimos a hex
|
30 |
+
c = to_hex((r, g, b, a))
|
31 |
+
return c
|
32 |
+
|
33 |
|
34 |
def ajustar_decimales_evento(df, decimales):
|
35 |
df = df.copy()
|
|
|
68 |
color_linea_ideal, estilo_linea_ideal,
|
69 |
color_barras_error,
|
70 |
mostrar_linea_ajuste, mostrar_linea_ideal, mostrar_puntos):
|
71 |
+
|
72 |
+
# Convertir colores a formato v谩lido para matplotlib
|
73 |
+
color_puntos = safe_color(color_puntos)
|
74 |
+
color_linea_ajuste = safe_color(color_linea_ajuste)
|
75 |
+
color_linea_ideal = safe_color(color_linea_ideal)
|
76 |
+
color_barras_error = safe_color(color_barras_error)
|
77 |
+
|
78 |
col_predicha_num = "Concentraci贸n Predicha Num茅rica"
|
79 |
col_real_promedio = f"Concentraci贸n Real Promedio ({unidad_medida})"
|
80 |
col_desviacion = f"Desviaci贸n Est谩ndar ({unidad_medida})"
|
|
|
528 |
if df is None or df.empty:
|
529 |
return "Datos insuficientes", None, None, None
|
530 |
|
531 |
+
# Convertir colores a formato seguro
|
532 |
+
color_puntos = safe_color(color_puntos)
|
533 |
+
color_linea_ajuste = safe_color(color_linea_ajuste)
|
534 |
+
|
535 |
col_concentracion = "Concentraci贸n Predicha Num茅rica"
|
536 |
col_real_promedio = f"Concentraci贸n Real Promedio ({unidad_medida})"
|
537 |
col_desviacion = f"Desviaci贸n Est谩ndar ({unidad_medida})"
|
|
|
670 |
3
|
671 |
)
|
672 |
|
673 |
+
|
674 |
with gr.Blocks(theme=gr.themes.Soft()) as interfaz:
|
675 |
gr.Markdown("""
|
676 |
# 馃搳 Sistema Avanzado de Calibraci贸n con An谩lisis Estad铆stico
|