annotate scripts/score_individual.py @ 1011:2df5ba8845b3

Merge from 156:402bb0f56dc4
author Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk>
date Mon, 01 Jun 2015 12:56:15 +0100
parents 6157acacd082
children 566fc4fa2bea 4a0bfa7bef24
rev   line source
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@929 11 # get every csv file in folder
BrechtDeMan@929 12 for file in os.listdir(rating_folder): # You have to put this in folder where rating csv files are.
BrechtDeMan@929 13 if file.endswith(".csv"):
BrechtDeMan@929 14 page_name = file[:-4] # file name (without extension) is page ID
BrechtDeMan@929 15
BrechtDeMan@929 16 with open(rating_folder+file, 'r') as readfile: # read this csv file
BrechtDeMan@929 17 filereader = csv.reader(readfile, delimiter=',')
BrechtDeMan@929 18 headerrow = filereader.next() # use headerrow as X-axis
BrechtDeMan@929 19 headerrow = headerrow[1:]
BrechtDeMan@929 20
BrechtDeMan@929 21
BrechtDeMan@929 22 increment = 0
BrechtDeMan@929 23 linehandles = []
BrechtDeMan@929 24 legendnames = []
BrechtDeMan@929 25 for row in filereader:
BrechtDeMan@929 26 subject_id = row[0][:-4]
BrechtDeMan@929 27 plothandle, = plt.plot(range(1,len(row)), # x-values
BrechtDeMan@929 28 row[1:], # y-values: csv values except subject name
BrechtDeMan@929 29 color=colormap[increment%len(colormap)],
BrechtDeMan@929 30 marker=markerlist[increment%len(markerlist)],
BrechtDeMan@929 31 markersize=10,
BrechtDeMan@929 32 linestyle='None',
BrechtDeMan@929 33 label=subject_id
BrechtDeMan@929 34 )
BrechtDeMan@929 35 increment += 1 # increase counter
BrechtDeMan@929 36 linehandles.append(plothandle)
BrechtDeMan@929 37 legendnames.append(subject_id)
BrechtDeMan@929 38
BrechtDeMan@929 39
BrechtDeMan@929 40 plt.xlabel('Fragment')
BrechtDeMan@929 41 plt.title('Individual ratings '+page_name)
BrechtDeMan@929 42 plt.xlim(0, len(headerrow)+1) # only show relevant region, leave space left & right)
BrechtDeMan@929 43 plt.xticks(range(1, len(headerrow)+1), headerrow) # show fragment names
BrechtDeMan@929 44
BrechtDeMan@929 45 plt.ylabel('Rating')
BrechtDeMan@929 46 plt.ylim(0,1)
BrechtDeMan@929 47
BrechtDeMan@929 48 plt.legend(linehandles, legendnames,
BrechtDeMan@929 49 loc='upper right',
BrechtDeMan@929 50 bbox_to_anchor=(1.1, 1), borderaxespad=0.)
BrechtDeMan@929 51
BrechtDeMan@929 52 #TODO Put legend outside of box
BrechtDeMan@929 53 #TODO Why two markers in legend?
BrechtDeMan@929 54
BrechtDeMan@929 55 plt.show()
BrechtDeMan@929 56 #exit()
BrechtDeMan@929 57
nicholas@931 58 #TODO Save output automatically
nicholas@931 59