[6536f9]: / plot_exp1.py

Download this file

38 lines (33 with data), 1.4 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
import matplotlib.pyplot as plt
import re
import numpy as np
def extract_acc(filename):
accuracy_array = []
with open(filename, 'r') as file:
for line in file:
match = re.search(r'Accuracy: ([\d.]+)', line)
if match:
accuracy = round(float(match.group(1)), 2)
accuracy_array.append(accuracy)
return accuracy_array
num_subjects = list(range(20, 150, 20))
accuracies1 = extract_acc('exp1_results/result-III-V3-V5.txt')
accuracies2 = extract_acc('exp1_results/result-III-V3.txt')
accuracies3 = extract_acc('exp1_results/result-V5.txt')
accuracies4 = extract_acc('exp1_results/result-V3.txt')
accuracies5 = extract_acc('exp1_results/result-III.txt')
plt.figure(figsize=(10, 8), dpi=100)
plt.plot(num_subjects, accuracies1, '#8C2155',marker='.', label='III+V3+V5')
plt.plot(num_subjects, accuracies2, '#F99083',marker='.', label='III+V3')
plt.plot(num_subjects, accuracies3, '#8AA29E',marker='.', label='V5')
plt.plot(num_subjects, accuracies4, '#98CE00',marker='.', label='V3')
plt.plot(num_subjects, accuracies5, '#FFC857',marker='.', label='III')
plt.xlabel('Number of subjects', fontsize=16)
plt.ylabel('Accuracy (%)', fontsize=16)
plt.tick_params(axis='both', which='major', labelsize=12)
plt.legend()
plt.xlim((np.min(num_subjects),np.max(num_subjects)))
plt.grid(True, 'both')
plt.savefig('exp1_results/fig_exp1.png')
plt.show()
plt.close()