hedtorresca commited on
Commit
9c6afa0
·
verified ·
1 Parent(s): 695fe89

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -6
app.py CHANGED
@@ -39,7 +39,7 @@ def calculate_probabilities(A, B, C, AB, AC, BC, ABC, U):
39
 
40
  return formatted_probs
41
 
42
- def plot_venn(A, B, C, AB, AC, BC, ABC, U):
43
  plt.figure(figsize=(8, 8))
44
  subsets = {
45
  '100': A - AB - AC + ABC,
@@ -59,29 +59,37 @@ def plot_venn(A, B, C, AB, AC, BC, ABC, U):
59
  img = Image.open(buf)
60
  return img
61
 
62
- def suggest_intersections(A, B, C, AB, AC, BC, ABC, U):
63
- # Generar sugerencias válidas y sin valores negativos
64
  max_AB = min(A, B)
65
  max_AC = min(A, C)
66
  max_BC = min(B, C)
67
  max_ABC = min(max_AB, max_AC, max_BC)
68
 
 
 
 
 
 
69
  suggestions = {
70
  "Máximo valor sugerido para A ∩ B": max_AB,
 
71
  "Máximo valor sugerido para A ∩ C": max_AC,
 
72
  "Máximo valor sugerido para B ∩ C": max_BC,
 
73
  "Máximo valor sugerido para A ∩ B ∩ C": max_ABC,
 
74
  }
75
  return suggestions
76
 
77
  def main(A, B, C, AB, AC, BC, ABC, U):
78
  errors = validate_inputs(A, B, C, AB, AC, BC, ABC, U)
79
  if errors:
80
- return None, {"error": "\n".join(errors), "sugerencias": suggest_intersections(A, B, C, AB, AC, BC, ABC, U)}
81
 
82
- venn_diagram = plot_venn(A, B, C, AB, AC, BC, ABC, U)
83
  probabilities = calculate_probabilities(A, B, C, AB, AC, BC, ABC, U)
84
- return venn_diagram, {"probabilidades": probabilities, "sugerencias": suggest_intersections(A, B, C, AB, AC, BC, ABC, U)}
85
 
86
  iface = gr.Interface(
87
  fn=main,
 
39
 
40
  return formatted_probs
41
 
42
+ def plot_venn(A, B, C, AB, AC, BC, ABC):
43
  plt.figure(figsize=(8, 8))
44
  subsets = {
45
  '100': A - AB - AC + ABC,
 
59
  img = Image.open(buf)
60
  return img
61
 
62
+ def suggest_intersections(A, B, C, AB, AC, BC, ABC):
 
63
  max_AB = min(A, B)
64
  max_AC = min(A, C)
65
  max_BC = min(B, C)
66
  max_ABC = min(max_AB, max_AC, max_BC)
67
 
68
+ min_AB = max(0, AB - ABC)
69
+ min_AC = max(0, AC - ABC)
70
+ min_BC = max(0, BC - ABC)
71
+ min_ABC = max(0, ABC)
72
+
73
  suggestions = {
74
  "Máximo valor sugerido para A ∩ B": max_AB,
75
+ "Mínimo valor sugerido para A ∩ B": min_AB,
76
  "Máximo valor sugerido para A ∩ C": max_AC,
77
+ "Mínimo valor sugerido para A ∩ C": min_AC,
78
  "Máximo valor sugerido para B ∩ C": max_BC,
79
+ "Mínimo valor sugerido para B ∩ C": min_BC,
80
  "Máximo valor sugerido para A ∩ B ∩ C": max_ABC,
81
+ "Mínimo valor sugerido para A ∩ B ∩ C": min_ABC,
82
  }
83
  return suggestions
84
 
85
  def main(A, B, C, AB, AC, BC, ABC, U):
86
  errors = validate_inputs(A, B, C, AB, AC, BC, ABC, U)
87
  if errors:
88
+ return None, {"error": "\n".join(errors), "sugerencias": suggest_intersections(A, B, C, AB, AC, BC, ABC)}
89
 
90
+ venn_diagram = plot_venn(A, B, C, AB, AC, BC, ABC)
91
  probabilities = calculate_probabilities(A, B, C, AB, AC, BC, ABC, U)
92
+ return venn_diagram, {"probabilidades": probabilities, "sugerencias": suggest_intersections(A, B, C, AB, AC, BC, ABC)}
93
 
94
  iface = gr.Interface(
95
  fn=main,