C2MV commited on
Commit
629ec27
·
verified ·
1 Parent(s): dd3c2a8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -24
app.py CHANGED
@@ -517,9 +517,6 @@ class RSM_BoxBehnken:
517
  """
518
  Guarda todas las tablas en un archivo Excel con múltiples hojas y retorna la ruta del archivo.
519
  """
520
- if 'rsm' not in globals():
521
- return None
522
-
523
  tables = self.get_all_tables()
524
  excel_buffer = io.BytesIO()
525
  with pd.ExcelWriter(excel_buffer, engine='xlsxwriter') as writer:
@@ -562,7 +559,7 @@ def load_data(x1_name, x2_name, x3_name, y_name, x1_levels_str, x2_levels_str, x
562
  rsm = RSM_BoxBehnken(data, x1_name, x2_name, x3_name, y_name, x1_levels, x2_levels, x3_levels)
563
 
564
  return data.round(3), x1_name, x2_name, x3_name, y_name, x1_levels, x2_levels, x3_levels, gr.update(visible=True)
565
-
566
  except Exception as e:
567
  # Mostrar mensaje de error
568
  error_message = f"Error al cargar los datos: {str(e)}"
@@ -571,8 +568,8 @@ def load_data(x1_name, x2_name, x3_name, y_name, x1_levels_str, x2_levels_str, x
571
 
572
  def fit_and_optimize_model():
573
  if 'rsm' not in globals():
574
- return [None]*10
575
-
576
  # Ajustar modelos y optimizar
577
  model_completo, pareto_completo = rsm.fit_model()
578
  model_simplificado, pareto_simplificado = rsm.fit_simplified_model()
@@ -605,8 +602,8 @@ def fit_and_optimize_model():
605
  prediction_table,
606
  contribution_table,
607
  anova_table,
608
- zip_path, # Ruta del ZIP de gráficos
609
- excel_path # Ruta del Excel de tablas
610
  )
611
 
612
  def show_plot(current_index, all_figures):
@@ -652,15 +649,18 @@ def download_current_plot(all_figures, current_index):
652
 
653
  return temp_path # Retornar solo la ruta
654
 
655
- def download_all_plots_zip(all_figures):
656
  """
657
  Descarga todas las figuras en un archivo ZIP.
658
  """
659
- if not all_figures:
660
  return None
661
  zip_path = rsm.save_figures_to_zip()
662
- filename = f"Graficos_RSM_{datetime.now().strftime('%Y%m%d_%H%M%S')}.zip"
663
- return zip_path # Retornar solo la ruta
 
 
 
664
 
665
  def download_all_tables_excel():
666
  """
@@ -669,8 +669,11 @@ def download_all_tables_excel():
669
  if 'rsm' not in globals():
670
  return None
671
  excel_path = rsm.save_tables_to_excel()
672
- filename = f"Tablas_RSM_{datetime.now().strftime('%Y%m%d_%H%M%S')}.xlsx"
673
- return excel_path # Retornar solo la ruta
 
 
 
674
 
675
  # --- Crear la interfaz de Gradio ---
676
 
@@ -742,7 +745,7 @@ with gr.Blocks() as demo:
742
  download_all_plots_button = gr.DownloadButton("Descargar Todos los Gráficos (ZIP)")
743
  current_index_state = gr.State(0) # Estado para el índice actual
744
  all_figures_state = gr.State([]) # Estado para todas las figuras
745
-
746
  # Cargar datos
747
  load_button.click(
748
  load_data,
@@ -764,27 +767,32 @@ with gr.Blocks() as demo:
764
  prediction_table_output,
765
  contribution_table_output,
766
  anova_table_output,
767
- download_all_plots_button,
768
- download_excel_button
769
  ]
770
  )
771
 
772
  # Generar y mostrar los gráficos
773
  plot_button.click(
774
- lambda fixed_var, fixed_lvl: (rsm.plot_rsm_individual(fixed_var, fixed_lvl), "Gráfico 1 de " + str(len(rsm.all_figures)), 0),
 
 
 
 
 
775
  inputs=[fixed_variable_input, fixed_level_input],
776
- outputs=[rsm_plot_output, plot_info, current_index_state]
777
  )
778
 
779
  # Navegación de gráficos
780
  left_button.click(
781
- navigate_plot,
782
- inputs=[gr.Button.get_value(left_button), current_index_state, all_figures_state],
783
  outputs=[rsm_plot_output, plot_info, current_index_state]
784
  )
785
  right_button.click(
786
- navigate_plot,
787
- inputs=[gr.Button.get_value(right_button), current_index_state, all_figures_state],
788
  outputs=[rsm_plot_output, plot_info, current_index_state]
789
  )
790
 
@@ -798,7 +806,7 @@ with gr.Blocks() as demo:
798
  # Descargar todos los gráficos en ZIP
799
  download_all_plots_button.click(
800
  download_all_plots_zip,
801
- inputs=[all_figures_state],
802
  outputs=download_all_plots_button
803
  )
804
 
 
517
  """
518
  Guarda todas las tablas en un archivo Excel con múltiples hojas y retorna la ruta del archivo.
519
  """
 
 
 
520
  tables = self.get_all_tables()
521
  excel_buffer = io.BytesIO()
522
  with pd.ExcelWriter(excel_buffer, engine='xlsxwriter') as writer:
 
559
  rsm = RSM_BoxBehnken(data, x1_name, x2_name, x3_name, y_name, x1_levels, x2_levels, x3_levels)
560
 
561
  return data.round(3), x1_name, x2_name, x3_name, y_name, x1_levels, x2_levels, x3_levels, gr.update(visible=True)
562
+
563
  except Exception as e:
564
  # Mostrar mensaje de error
565
  error_message = f"Error al cargar los datos: {str(e)}"
 
568
 
569
  def fit_and_optimize_model():
570
  if 'rsm' not in globals():
571
+ return [None]*11 # Ajustar el número de outputs
572
+
573
  # Ajustar modelos y optimizar
574
  model_completo, pareto_completo = rsm.fit_model()
575
  model_simplificado, pareto_simplificado = rsm.fit_simplified_model()
 
602
  prediction_table,
603
  contribution_table,
604
  anova_table,
605
+ zip_path, # Ruta del ZIP de gráficos
606
+ excel_path # Ruta del Excel de tablas
607
  )
608
 
609
  def show_plot(current_index, all_figures):
 
649
 
650
  return temp_path # Retornar solo la ruta
651
 
652
+ def download_all_plots_zip():
653
  """
654
  Descarga todas las figuras en un archivo ZIP.
655
  """
656
+ if 'rsm' not in globals():
657
  return None
658
  zip_path = rsm.save_figures_to_zip()
659
+ if zip_path:
660
+ filename = f"Graficos_RSM_{datetime.now().strftime('%Y%m%d_%H%M%S')}.zip"
661
+ # Renombrar el archivo temporal al nombre deseado
662
+ return (zip_path, filename)
663
+ return None
664
 
665
  def download_all_tables_excel():
666
  """
 
669
  if 'rsm' not in globals():
670
  return None
671
  excel_path = rsm.save_tables_to_excel()
672
+ if excel_path:
673
+ filename = f"Tablas_RSM_{datetime.now().strftime('%Y%m%d_%H%M%S')}.xlsx"
674
+ # Renombrar el archivo temporal al nombre deseado
675
+ return (excel_path, filename)
676
+ return None
677
 
678
  # --- Crear la interfaz de Gradio ---
679
 
 
745
  download_all_plots_button = gr.DownloadButton("Descargar Todos los Gráficos (ZIP)")
746
  current_index_state = gr.State(0) # Estado para el índice actual
747
  all_figures_state = gr.State([]) # Estado para todas las figuras
748
+
749
  # Cargar datos
750
  load_button.click(
751
  load_data,
 
767
  prediction_table_output,
768
  contribution_table_output,
769
  anova_table_output,
770
+ download_all_plots_button, # Ruta del ZIP de gráficos
771
+ download_excel_button # Ruta del Excel de tablas
772
  ]
773
  )
774
 
775
  # Generar y mostrar los gráficos
776
  plot_button.click(
777
+ lambda fixed_var, fixed_lvl: (
778
+ rsm.plot_rsm_individual(fixed_var, fixed_lvl),
779
+ f"Gráfico 1 de {len(rsm.all_figures)}" if rsm.all_figures else "No hay gráficos disponibles.",
780
+ 0,
781
+ rsm.all_figures # Actualizar el estado de todas las figuras
782
+ ),
783
  inputs=[fixed_variable_input, fixed_level_input],
784
+ outputs=[rsm_plot_output, plot_info, current_index_state, all_figures_state]
785
  )
786
 
787
  # Navegación de gráficos
788
  left_button.click(
789
+ lambda current_index, all_figures: navigate_plot('left', current_index, all_figures),
790
+ inputs=[current_index_state, all_figures_state],
791
  outputs=[rsm_plot_output, plot_info, current_index_state]
792
  )
793
  right_button.click(
794
+ lambda current_index, all_figures: navigate_plot('right', current_index, all_figures),
795
+ inputs=[current_index_state, all_figures_state],
796
  outputs=[rsm_plot_output, plot_info, current_index_state]
797
  )
798
 
 
806
  # Descargar todos los gráficos en ZIP
807
  download_all_plots_button.click(
808
  download_all_plots_zip,
809
+ inputs=[],
810
  outputs=download_all_plots_button
811
  )
812