hedtorresca commited on
Commit
ce05002
·
verified ·
1 Parent(s): 453517f

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +55 -0
app.py ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import matplotlib.pyplot as plt
3
+ import numpy as np
4
+ from matplotlib_venn import venn3
5
+
6
+ def calculate_probabilities(A, B, C, AB, AC, BC, ABC):
7
+ total = A + B + C - AB - AC - BC + ABC
8
+
9
+ P_A = A / total
10
+ P_B = B / total
11
+ P_C = C / total
12
+ P_AB = AB / total
13
+ P_AC = AC / total
14
+ P_BC = BC / total
15
+ P_ABC = ABC / total
16
+
17
+ return {
18
+ "P(A)": P_A,
19
+ "P(B)": P_B,
20
+ "P(C)": P_C,
21
+ "P(A ∩ B)": P_AB,
22
+ "P(A ∩ C)": P_AC,
23
+ "P(B ∩ C)": P_BC,
24
+ "P(A ∩ B ∩ C)": P_ABC,
25
+ }
26
+
27
+ def plot_venn(A, B, C, AB, AC, BC, ABC):
28
+ plt.figure(figsize=(8, 8))
29
+ venn = venn3(subsets=(A, B, AB, C, AC, BC, ABC), set_labels=('A', 'B', 'C'))
30
+ plt.title("Venn Diagram")
31
+ plt.show()
32
+
33
+ def main(A, B, C, AB, AC, BC, ABC):
34
+ plot_venn(A, B, C, AB, AC, BC, ABC)
35
+ probabilities = calculate_probabilities(A, B, C, AB, AC, BC, ABC)
36
+ return probabilities
37
+
38
+ iface = gr.Interface(
39
+ fn=main,
40
+ inputs=[
41
+ gr.inputs.Number(label="Cantidad en A"),
42
+ gr.inputs.Number(label="Cantidad en B"),
43
+ gr.inputs.Number(label="Cantidad en C"),
44
+ gr.inputs.Number(label="Cantidad en A ∩ B"),
45
+ gr.inputs.Number(label="Cantidad en A ∩ C"),
46
+ gr.inputs.Number(label="Cantidad en B ∩ C"),
47
+ gr.inputs.Number(label="Cantidad en A ∩ B ∩ C")
48
+ ],
49
+ outputs=[
50
+ gr.outputs.Image(type="plot", label="Diagrama de Venn"),
51
+ gr.outputs.JSON(label="Probabilidades Calculadas")
52
+ ]
53
+ )
54
+
55
+ iface.launch()