C2MV commited on
Commit
0fc9d0e
·
verified ·
1 Parent(s): e127c6f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +52 -36
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, color_puntos, estilo_puntos,
78
- color_linea_ajuste, estilo_linea_ajuste,
79
- color_linea_ideal, estilo_linea_ideal,
80
- color_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,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
- color_puntos='blue', estilo_puntos='o',
285
- color_linea_ajuste='green', estilo_linea_ajuste='-',
286
- color_linea_ideal='red', estilo_linea_ideal='--',
287
- color_barras_error='lightgray',
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
- color_puntos, estilo_puntos,
296
- color_linea_ajuste, estilo_linea_ajuste,
297
- color_linea_ideal, estilo_linea_ideal,
298
- color_barras_error,
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
- color_puntos, estilo_puntos,
322
- color_linea_ajuste, estilo_linea_ajuste,
323
- color_linea_ideal, estilo_linea_ideal,
324
- color_barras_error,
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
- color_puntos_dropdown = gr.Dropdown(
589
- choices=["blue", "red", "green", "purple", "orange", "black"],
590
- value="blue",
591
- label="Color de Puntos"
 
 
 
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
- color_linea_ajuste_dropdown = gr.Dropdown(
599
- choices=["green", "blue", "red", "purple", "orange", "black"],
600
- value="green",
601
- label="Color Línea de Ajuste"
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
- color_linea_ideal_dropdown = gr.Dropdown(
610
- choices=["red", "green", "blue", "purple", "orange", "black"],
611
- value="red",
612
- label="Color Línea Ideal"
613
  )
614
  estilo_linea_ideal_dropdown = gr.Dropdown(
615
  choices=["--", "-", "-.", ":"],
616
  value="--",
617
  label="Estilo Línea Ideal"
618
  )
619
- color_barras_error_dropdown = gr.Dropdown(
620
- choices=["lightgray", "gray", "darkgray", "pink", "lightblue", "lightgreen"],
621
- value="lightgray",
622
- label="Color Barras de Error"
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
- color_puntos_dropdown, estilo_puntos_dropdown,
658
- color_linea_ajuste_dropdown, estilo_linea_ajuste_dropdown,
659
- color_linea_ideal_dropdown, estilo_linea_ideal_dropdown,
660
- color_barras_error_dropdown,
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