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@929: # get every csv file in folder BrechtDeMan@929: for file in os.listdir(rating_folder): # You have to put this in folder where rating csv files are. BrechtDeMan@929: if file.endswith(".csv"): 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@929: legendnames.append(subject_id) 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@929: plt.legend(linehandles, legendnames, BrechtDeMan@929: loc='upper right', BrechtDeMan@929: bbox_to_anchor=(1.1, 1), borderaxespad=0.) BrechtDeMan@929: BrechtDeMan@929: #TODO Put legend outside of box BrechtDeMan@929: #TODO Why two markers in legend? BrechtDeMan@929: BrechtDeMan@929: plt.show() BrechtDeMan@929: #exit() BrechtDeMan@929: nicholas@931: #TODO Save output automatically nicholas@931: