In [1]:
import glob
import csv
from operator import add
import scipy.stats as stat
#Dateiliste erstellen
files = []
for filename in glob.glob('/home/weiss/data/*.csv'):
files.append(filename)
#read files
seen = 0
trials = 0
catchseen = 0
catchtrials = 0
deltas = []
freqs = []
for filename in files:
data = csv.reader(open(filename, "rb"), delimiter=',')
data.next()
data.next()
data.next()
for row in data:
freqdiff = abs(int(row[0][0:-2])-int(row[1][0:-2]))
if float(row[3]) < float(row[4]):
if row[0] != row[1]:
trials += 1
if row[5] == 'y':
seen += 1
deltas.append((freqdiff,1))
freqs.append((int(row[0][0:-2]),int(row[1][0:-2]),1))
else:
deltas.append((freqdiff,0))
freqs.append((int(row[0][0:-2]),int(row[1][0:-2]),0))
if row[0] == row[1]:
catchtrials += 1
if row[5] == 'n':
catchseen += 1
else:
print row
d_delta = {}
for freq, count in deltas:
if freq not in d_delta:
d_delta[freq] = [0,0]
d_delta[freq][0] += 1
if count:
d_delta[freq][1] += 1
d_freqs = {}
for freq1, freq2, count in freqs:
if (freq1, freq2) not in d_freqs:
d_freqs[(freq1, freq2)] = [0,0]
d_freqs[(freq1, freq2)][0] += 1
if count:
d_freqs[(freq1, freq2)][1] += 1
d_all = d_freqs.copy()
d_all['overall\ncorrectness'] = (1, round(float(seen)/trials, 3))
d_all['false\npositives'] = (1, 1-round(float(catchseen)/catchtrials, 3))
print 'seeing-prob:', round(100.*seen/trials, 3), '%'
print 'catchtrial accuracy:', round(100.*catchseen/catchtrials), '%'
delta_std = loadtxt("/home/weiss/data/delta_std.txt", delimiter=', ')
d_all_std = loadtxt("/home/weiss/data/d_all_std.txt", delimiter=', ')
contrast_std = loadtxt("/home/weiss/data/contrast_std.txt", delimiter=', ')
print delta_std[:,2].shape
delta_std = [stat.sem(delta_std[:,i]) for i in range(delta_std.shape[1])]
d_all_std = [stat.sem(d_all_std[:,i]) for i in range(d_all_std.shape[1])]
contrast_std = [stat.sem(contrast_std[:,i]) for i in range(contrast_std.shape[1])]
f, p = plt.subplots(1, figsize=(12,7))
ids = [2, 6, 8, 15, 17, 21]
zweihunderter = [(200,400), (400,200), (400,600), (600,400), (600,800), (800,600)]
zweihundert = [(200,400), (400,200), (200,500), (500,200), (200,600), (600,200), (200,800), (800,200)]
ids2 = [2,6,3,10,4,14,5,18]
niedrige = []
ids3 = []
p.bar(range(6), [float(d_all[key][1])/d_all[key][0] for key in zweihunderter], align='center', alpha=.3, width=.2, yerr=[d_all_std[i] for i in ids], ecolor='k', error_kw={'elinewidth':2})
p.set_xticks(range(6))
p.set_xticklabels(zweihunderter)
p.set_ylim(0, 1.1)
p.set_xlim(-1, 6)
#p.grid()
#p.set_title('Probability of Seeing', fontsize=15)
p.set_xlabel('Frequenzen [Hz]', fontsize=15)
p.set_ylabel('P', fontsize=15)
plt.xticks(fontsize=15)
plt.yticks(fontsize=15)
plt.tight_layout()
#plt.savefig('/home/weiss/ba/figures/delta200.pdf')
In [ ]: