BrechtDeMan@929: import sys BrechtDeMan@929: import os BrechtDeMan@929: import csv BrechtDeMan@929: import matplotlib.pyplot as plt BrechtDeMan@929: BrechtDeMan@929: rating_folder = 'ratings/' # folder with rating csv files BrechtDeMan@929: BrechtDeMan@929: colormap = ['b', 'r', 'g', 'c', 'm', 'y', 'k'] # colormap for to cycle through BrechtDeMan@929: markerlist = ["x", ".", "o", "*", "+", "v", ">", "<", "8", "s", "p"] BrechtDeMan@929: BrechtDeMan@1030: show_legend = False BrechtDeMan@1030: BrechtDeMan@929: # get every csv file in folder BrechtDeMan@1025: for file in os.listdir(rating_folder): BrechtDeMan@929: if file.endswith(".csv"): BrechtDeMan@1030: BrechtDeMan@929: page_name = file[:-4] # file name (without extension) is page ID BrechtDeMan@929: BrechtDeMan@929: with open(rating_folder+file, 'r') as readfile: # read this csv file BrechtDeMan@929: filereader = csv.reader(readfile, delimiter=',') BrechtDeMan@929: headerrow = filereader.next() # use headerrow as X-axis BrechtDeMan@929: headerrow = headerrow[1:] BrechtDeMan@929: BrechtDeMan@929: BrechtDeMan@929: increment = 0 BrechtDeMan@929: linehandles = [] BrechtDeMan@929: legendnames = [] BrechtDeMan@929: for row in filereader: BrechtDeMan@929: subject_id = row[0][:-4] BrechtDeMan@929: plothandle, = plt.plot(range(1,len(row)), # x-values BrechtDeMan@929: row[1:], # y-values: csv values except subject name BrechtDeMan@929: color=colormap[increment%len(colormap)], BrechtDeMan@929: marker=markerlist[increment%len(markerlist)], BrechtDeMan@929: markersize=10, BrechtDeMan@929: linestyle='None', BrechtDeMan@929: label=subject_id BrechtDeMan@929: ) BrechtDeMan@929: increment += 1 # increase counter BrechtDeMan@929: linehandles.append(plothandle) BrechtDeMan@1030: legendnames.append(subject_id.decode("utf-8")) # avoid decoding problems BrechtDeMan@929: BrechtDeMan@929: BrechtDeMan@929: plt.xlabel('Fragment') BrechtDeMan@929: plt.title('Individual ratings '+page_name) BrechtDeMan@929: plt.xlim(0, len(headerrow)+1) # only show relevant region, leave space left & right) BrechtDeMan@929: plt.xticks(range(1, len(headerrow)+1), headerrow) # show fragment names BrechtDeMan@929: BrechtDeMan@929: plt.ylabel('Rating') BrechtDeMan@929: plt.ylim(0,1) BrechtDeMan@929: BrechtDeMan@1030: if show_legend: BrechtDeMan@1030: plt.legend(linehandles, legendnames, BrechtDeMan@1030: loc='upper right', BrechtDeMan@1030: bbox_to_anchor=(1.1, 1), BrechtDeMan@1030: borderaxespad=0., BrechtDeMan@1030: numpoints=1 # remove extra marker BrechtDeMan@1030: ) BrechtDeMan@929: BrechtDeMan@929: #TODO Put legend outside of box BrechtDeMan@929: BrechtDeMan@1025: #plt.show() # show plot BrechtDeMan@929: #exit() BrechtDeMan@1030: BrechtDeMan@1025: plt.savefig(rating_folder+page_name+"-ind.png") BrechtDeMan@1030: plt.close()