BrechtDeMan@929
|
1 import sys
|
BrechtDeMan@929
|
2 import os
|
BrechtDeMan@929
|
3 import csv
|
BrechtDeMan@929
|
4 import matplotlib.pyplot as plt
|
BrechtDeMan@929
|
5
|
BrechtDeMan@929
|
6 rating_folder = 'ratings/' # folder with rating csv files
|
BrechtDeMan@929
|
7
|
BrechtDeMan@929
|
8 colormap = ['b', 'r', 'g', 'c', 'm', 'y', 'k'] # colormap for to cycle through
|
BrechtDeMan@929
|
9 markerlist = ["x", ".", "o", "*", "+", "v", ">", "<", "8", "s", "p"]
|
BrechtDeMan@929
|
10
|
BrechtDeMan@1030
|
11 show_legend = False
|
BrechtDeMan@1030
|
12
|
BrechtDeMan@929
|
13 # get every csv file in folder
|
BrechtDeMan@1025
|
14 for file in os.listdir(rating_folder):
|
BrechtDeMan@929
|
15 if file.endswith(".csv"):
|
BrechtDeMan@1030
|
16
|
BrechtDeMan@929
|
17 page_name = file[:-4] # file name (without extension) is page ID
|
BrechtDeMan@929
|
18
|
BrechtDeMan@929
|
19 with open(rating_folder+file, 'r') as readfile: # read this csv file
|
BrechtDeMan@929
|
20 filereader = csv.reader(readfile, delimiter=',')
|
BrechtDeMan@929
|
21 headerrow = filereader.next() # use headerrow as X-axis
|
BrechtDeMan@929
|
22 headerrow = headerrow[1:]
|
BrechtDeMan@929
|
23
|
BrechtDeMan@929
|
24
|
BrechtDeMan@929
|
25 increment = 0
|
BrechtDeMan@929
|
26 linehandles = []
|
BrechtDeMan@929
|
27 legendnames = []
|
BrechtDeMan@929
|
28 for row in filereader:
|
BrechtDeMan@929
|
29 subject_id = row[0][:-4]
|
BrechtDeMan@929
|
30 plothandle, = plt.plot(range(1,len(row)), # x-values
|
BrechtDeMan@929
|
31 row[1:], # y-values: csv values except subject name
|
BrechtDeMan@929
|
32 color=colormap[increment%len(colormap)],
|
BrechtDeMan@929
|
33 marker=markerlist[increment%len(markerlist)],
|
BrechtDeMan@929
|
34 markersize=10,
|
BrechtDeMan@929
|
35 linestyle='None',
|
BrechtDeMan@929
|
36 label=subject_id
|
BrechtDeMan@929
|
37 )
|
BrechtDeMan@929
|
38 increment += 1 # increase counter
|
BrechtDeMan@929
|
39 linehandles.append(plothandle)
|
BrechtDeMan@1030
|
40 legendnames.append(subject_id.decode("utf-8")) # avoid decoding problems
|
BrechtDeMan@929
|
41
|
BrechtDeMan@929
|
42
|
BrechtDeMan@929
|
43 plt.xlabel('Fragment')
|
BrechtDeMan@929
|
44 plt.title('Individual ratings '+page_name)
|
BrechtDeMan@929
|
45 plt.xlim(0, len(headerrow)+1) # only show relevant region, leave space left & right)
|
BrechtDeMan@929
|
46 plt.xticks(range(1, len(headerrow)+1), headerrow) # show fragment names
|
BrechtDeMan@929
|
47
|
BrechtDeMan@929
|
48 plt.ylabel('Rating')
|
BrechtDeMan@929
|
49 plt.ylim(0,1)
|
BrechtDeMan@929
|
50
|
BrechtDeMan@1030
|
51 if show_legend:
|
BrechtDeMan@1030
|
52 plt.legend(linehandles, legendnames,
|
BrechtDeMan@1030
|
53 loc='upper right',
|
BrechtDeMan@1030
|
54 bbox_to_anchor=(1.1, 1),
|
BrechtDeMan@1030
|
55 borderaxespad=0.,
|
BrechtDeMan@1030
|
56 numpoints=1 # remove extra marker
|
BrechtDeMan@1030
|
57 )
|
BrechtDeMan@929
|
58
|
BrechtDeMan@929
|
59 #TODO Put legend outside of box
|
BrechtDeMan@929
|
60
|
BrechtDeMan@1025
|
61 #plt.show() # show plot
|
BrechtDeMan@929
|
62 #exit()
|
BrechtDeMan@1030
|
63
|
BrechtDeMan@1025
|
64 plt.savefig(rating_folder+page_name+"-ind.png")
|
BrechtDeMan@1030
|
65 plt.close()
|