annotate scripts/score_individual.py @ 1776:71f843d91c29

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