a b/plot_exp1.py
1
import matplotlib.pyplot as plt
2
import re
3
import numpy as np
4
def extract_acc(filename):
5
    accuracy_array = []
6
    with open(filename, 'r') as file:
7
        for line in file:
8
            match = re.search(r'Accuracy: ([\d.]+)', line)
9
            if match:
10
                accuracy = round(float(match.group(1)), 2)
11
                accuracy_array.append(accuracy)
12
    return accuracy_array
13
14
15
num_subjects = list(range(20, 150, 20))
16
accuracies1 = extract_acc('exp1_results/result-III-V3-V5.txt')
17
accuracies2 = extract_acc('exp1_results/result-III-V3.txt')
18
accuracies3 = extract_acc('exp1_results/result-V5.txt')
19
accuracies4 = extract_acc('exp1_results/result-V3.txt')
20
accuracies5 = extract_acc('exp1_results/result-III.txt')
21
22
plt.figure(figsize=(10, 8), dpi=100)
23
plt.plot(num_subjects, accuracies1, '#8C2155',marker='.', label='III+V3+V5')
24
plt.plot(num_subjects, accuracies2, '#F99083',marker='.', label='III+V3')
25
plt.plot(num_subjects, accuracies3, '#8AA29E',marker='.', label='V5')
26
plt.plot(num_subjects, accuracies4, '#98CE00',marker='.', label='V3')
27
plt.plot(num_subjects, accuracies5, '#FFC857',marker='.', label='III')
28
29
30
plt.xlabel('Number of subjects', fontsize=16)
31
plt.ylabel('Accuracy (%)', fontsize=16)
32
plt.tick_params(axis='both', which='major', labelsize=12)
33
plt.legend()
34
plt.xlim((np.min(num_subjects),np.max(num_subjects)))
35
plt.grid(True, 'both')
36
plt.savefig('exp1_results/fig_exp1.png')
37
plt.show()
38
plt.close()