tomwalters@423: #!/usr/bin/python tomwalters@423: """ tomwalters@423: plot_munged_results.py tomwalters@423: tomwalters@423: """ tomwalters@423: tomwalters@423: import numpy as np tomwalters@423: import pylab as p tomwalters@423: import matplotlib.pyplot as plt tomwalters@423: tomwalters@423: f=open("results_test_all.csv","r") tomwalters@423: results = dict() tomwalters@423: for line in f: tomwalters@423: if line[0] != "#": tomwalters@423: values = line.strip().split(",") tomwalters@423: results.setdefault(values[3],dict()) tomwalters@423: results[values[3]].setdefault(values[0], dict()) tomwalters@423: results[values[3]][values[0]].setdefault(values[1], dict()) tomwalters@423: if values[2] == 'clean': tomwalters@423: snr = 40 tomwalters@423: else: tomwalters@423: snr = int(values[2]) tomwalters@423: results[values[3]][values[0]][values[1]][snr] = float(values[4]) tomwalters@423: # results[values[3]].append((values[1],values[2],values[2],values[4])) tomwalters@423: tomwalters@423: ax = plt.subplot(111) tomwalters@423: tomwalters@423: train_set = 'inner' tomwalters@423: lines = [] tomwalters@423: labels = [] tomwalters@423: for feature_type in ('mfcc', 'mfcc_vtln', 'aim'): tomwalters@423: for feature_subtype in results[train_set][feature_type].keys(): tomwalters@423: this_line = results[train_set][feature_type][feature_subtype].items() tomwalters@423: this_line.sort(cmp=lambda x,y: x[0] - y[0]) tomwalters@423: xs, ys = zip(*this_line) tomwalters@423: xs = list(xs) tomwalters@423: ys = list(ys) tomwalters@423: line, = ax.plot(xs,ys,'-o',linewidth=2) tomwalters@423: lines.append(line) tomwalters@423: labels.append(feature_type + "_" + feature_subtype) tomwalters@423: p.legend(lines, labels, 'upper left', shadow=True) tomwalters@423: p.xlabel('SNR/dB') tomwalters@423: p.ylabel('Recognition performance %') tomwalters@423: plt.show()