-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgraficos_real2.py
More file actions
55 lines (45 loc) · 2.19 KB
/
graficos_real2.py
File metadata and controls
55 lines (45 loc) · 2.19 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
import matplotlib.pyplot as plt
import pandas as pd
from pylab import Circle
import means_comparison
from data import groups_cols
colors = ['tab:blue', 'tab:red']
def plotting(data, different_means, col1='z_simulated_optimal', col2='z_ml_optimal', name='name'):
lbsl = [groups_cols.abm_params_show[l] for l in data.index.tolist() if l in different_means]
fig, ax = plt.subplots(figsize=(8, 3))
for par in data.index:
if par in different_means:
plt.hlines(par,
xmin=min(min(d[col1]), min(d[col2])),
xmax=max(max(d[col1]), max(d[col2])),
colors='lightgrey', lw=.8, alpha=.5)
ax.plot([data.loc[par, col1], data.loc[par, col2]], [par, par],
color=colors[0] if data.loc[par, col1] > data.loc[par, col2]
else colors[1], lw=1, alpha=.8)
for i, each in enumerate([col1, col2]):
ax.scatter(data.loc[par, each], par, color=colors[i], alpha=.9, marker='o')
plt.yticks(range(len(lbsl)), lbsl, fontsize=10)
pts = Circle((0, 0))
ax.legend([pts, pts], ['ABM Simulated optimal', 'ML surrogate optimal'],
edgecolor='white', facecolor='white',
framealpha=1, loc=(-.6, -.3))
# plt.ylabel("Model parameters")
plt.xlabel(f"Mean value of standardized parameters for optimal results")
leg = ax.get_legend()
for i in range(len(colors)):
# leg.legendHandles[i].set_marker('o')
leg.legendHandles[i].set_color(colors[i])
plt.tight_layout()
plt.savefig(f'parameters.png', dpi=300)
plt.show()
if __name__ == '__main__':
o = pd.read_csv('data/means_comparison_output_normTrue.csv', sep=';')
o.rename(columns={'Unnamed: 0': 'param'}, inplace=True)
o2 = pd.read_csv('data/means_comparison_optimal_non_optimal_normTrue.csv', sep=';')
o2.rename(columns={'Unnamed: 0': 'param'}, inplace=True)
lst_parameters = means_comparison.different(o, o2)
d = pd.read_csv('data/parameters_norm_optimal.csv', sep=';')
d.rename(columns={'Unnamed: 0': 'parameters'}, inplace=True)
d = d.set_index('parameters')
d = d.sort_values(by='difference')
plotting(d, lst_parameters)