-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathVec.py
More file actions
100 lines (84 loc) · 4.07 KB
/
Copy pathVec.py
File metadata and controls
100 lines (84 loc) · 4.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# Arquivo completar para o método vectorize do numpy
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import style
def trans(num): return float(num)
def norm(vec): return vec.np.norm
def ver2(x):
lista = []
for i in range(len(x)):
sum = 0
counter = 0
for j in range(len(x[i])):
if x[i][j] == 0.0:
continue
else:
sum += x[i][j]
counter += 1
try:
lista.append(sum/counter)
except ZeroDivisionError:
lista.append(10000)
return lista
def plot(*args):
""" Função que plota os gráficos desejados
Entradas: (=args[0] - tupla com as colunas desejadas a plotar, =args[1] - matriz de objetos)
Saída: Vazia
"""
matrix = args[1]
nupla = args[0]
save = np.arange(1000)
format = ["*", "d", "p"]
plt.style.use("ggplot")
match len(nupla):
case 2:
x = [[j.args_num[nupla[0]] for j in i]for i in matrix]
y = [[j.args_num[nupla[1]] for j in i]for i in matrix]
fig, axs = plt.subplots(1,1, figsize=(11,4))
axs.set_title(f"{matrix[0][0].axs_names[nupla[0]]} x {matrix[0][0].axs_names[nupla[1]]}")
axs.set_xlim(0, max([max(i) for i in x])+1)
axs.set_ylim(0, max([max(i) for i in y])+1)
for i in range(len(x)):
axs.scatter(x[i], y[i], label=f"{matrix[i][0].species}")
axs.legend(loc="best")
axs.set_xlabel(f"{matrix[0][0].axs_names[nupla[0]]}")
axs.set_ylabel(f"{matrix[0][0].axs_names[nupla[1]]}")
fig.savefig(f"{np.random.choice(save)}")
plt.show()
case 3:
x = [[j.args_num[nupla[0]] for j in i]for i in matrix]
y = [[j.args_num[nupla[1]] for j in i]for i in matrix]
z = [[j.args_num[nupla[2]] for j in i]for i in matrix]
fig = plt.figure(figsize=(11,5))
axs = fig.add_subplot(projection="3d")
for i in range(len(matrix)):
axs.set_title(f"{matrix[0][0].axs_names[nupla[0]]} x {matrix[0][0].axs_names[nupla[1]]} x {matrix[0][0].axs_names[nupla[2]]}")
axs.scatter(x[i], y[i], z[i], label=f"{matrix[i][0].species}", marker=format[i])
axs.legend(loc="best")
axs.set_xlabel(f"{matrix[0][0].axs_names[nupla[0]]}")
axs.set_ylabel(f"{matrix[0][0].axs_names[nupla[1]]}")
axs.set_zlabel(f"{matrix[0][0].axs_names[nupla[2]]}")
axs.set_xlim(0, max([max(i) for i in x])+1)
axs.set_ylim(0, max([max(i) for i in y])+1)
axs.set_zlim(0, max([max(i) for i in z])+1)
fig.savefig(f"{np.random.choice(save)}")
plt.show()
case 4:
x = [[j.args_num[nupla[0]] for j in i]for i in matrix]
y = [[j.args_num[nupla[1]] for j in i]for i in matrix]
z = [[j.args_num[nupla[2]] for j in i]for i in matrix]
colors = [[j.args_num[nupla[3]] for j in i]for i in matrix]
fig = plt.figure()
axs = fig.add_subplot(projection="3d")
for i in range(len(matrix)):
axs.set_title(f"{matrix[0][0].axs_names[nupla[0]]} x {matrix[0][0].axs_names[nupla[1]]} x {matrix[0][0].axs_names[nupla[2]]} x {matrix[0][0].axs_names[nupla[3]]}")
axs.scatter(x[i], y[i], z[i], c=colors[i], cmap="inferno" ,label=f"{matrix[i][0].species}")
axs.legend(loc="best")
axs.set_xlabel(f"{matrix[0][0].axs_names[nupla[0]]}")
axs.set_ylabel(f"{matrix[0][0].axs_names[nupla[1]]}")
axs.set_zlabel(f"{matrix[0][0].axs_names[nupla[2]]}")
axs.set_xlim(0, max([max(i) for i in x])+1)
axs.set_ylim(0, max([max(i) for i in y])+1)
axs.set_zlim(0, max([max(i) for i in z])+1)
plt.colorbar()
plt.show()