tomwalters@138: #!/usr/bin/python tomwalters@138: """ tomwalters@138: plot_munged_results.py tomwalters@138: tomwalters@138: """ tomwalters@138: tom@253: import matplotlib as mpl tom@253: mpl.use('PDF') tomwalters@138: import numpy as np tomwalters@138: import pylab as p tom@253: #import matplotlib.pyplot as plt tomwalters@251: tomwalters@138: f=open("results_test_all.csv","r") tomwalters@138: results = dict() tomwalters@138: for line in f: tomwalters@138: if line[0] != "#": tomwalters@138: values = line.strip().split(",") tomwalters@138: results.setdefault(values[3],dict()) tomwalters@138: results[values[3]].setdefault(values[0], dict()) tomwalters@138: results[values[3]][values[0]].setdefault(values[1], dict()) tomwalters@250: results[values[3]][values[0]][values[1]].setdefault(int(values[4]), dict()) tomwalters@250: results[values[3]][values[0]][values[1]][int(values[4])].setdefault(int(values[5]), dict()) tomwalters@250: results[values[3]][values[0]][values[1]][int(values[4])][int(values[5])].setdefault(int(values[6]), dict()) tomwalters@138: if values[2] == 'clean': tomwalters@250: snr = 50 tom@253: results[values[3]][values[0]][values[1]][int(values[4])][int(values[5])][int(values[6])][snr] = float(values[7]) tomwalters@138: else: tomwalters@138: snr = int(values[2]) tomwalters@251: results[values[3]][values[0]][values[1]][int(values[4])][int(values[5])][int(values[6])][snr] = float(values[7]) tomwalters@138: # results[values[3]].append((values[1],values[2],values[2],values[4])) tomwalters@138: tom@253: ax = mpl.pyplot.subplot(111) tomwalters@138: train_set = 'inner' tom@253: for hmm_iterations in [2,3,15]: tom@253: for hmm_states in [3,4]: tom@253: for hmm_components in [3,4]: tom@253: lines = [] tom@253: labels = [] tom@253: ax.cla() tom@253: for feature_type in ('mfcc', 'mfcc_vtln', 'aim'): tom@253: for feature_subtype in results[train_set][feature_type].keys(): tom@253: try: tom@253: this_line = results[train_set][feature_type][feature_subtype][hmm_states][hmm_components][hmm_iterations].items() tom@253: this_line.sort(cmp=lambda x,y: x[0] - y[0]) tom@253: xs, ys = zip(*this_line) tom@253: xs = list(xs) tom@253: ys = list(ys) tom@253: line, = ax.plot(xs,ys,'-o',linewidth=2) tom@253: lines.append(line) tom@253: labels.append(feature_type + "_" + feature_subtype) tom@253: except KeyError: tom@253: print "Data not found" tom@253: p.legend(lines, labels, 'upper left', shadow=True) tom@253: p.xlabel('SNR/dB') tom@253: p.ylabel('Recognition performance %') tom@253: output_file = ("recognition_vs_snr_%diterations_%dstates_%d_components.pdf" % (hmm_iterations, hmm_states, hmm_components)) tom@253: p.savefig(output_file)