-
Notifications
You must be signed in to change notification settings - Fork 2
/
temp.py
69 lines (55 loc) · 2.42 KB
/
temp.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import numpy as np
from scipy.stats import ks_2samp
import matplotlib.pylab as plt
import matplotlib.gridspec as gridspec
import videoAnalysisLib as va
import dataAnalysisLib as da
import smooth as smooth
dirList = []
#dirList.append('/fhgfs/brancolab/1697_ON_top/')
#dirList.append('/lmb/home/tbranco/analysis/1694_ON_top')
dirList.append('/lmb/home/tbranco/analysis/97936_top_complete')
#dirList.append('/lmb/home/tbranco/analysis/95757_top/')
#dirList.append('/lmb/home/tbranco/analysis/114491e_foraging/')
def plotTrackingData(trackingData, props):
colors = ['Crimson', 'CornflowerBlue', 'DarkOliveGreen', 'DarkOrange', 'LightSlateGray']
nData = len(trackingData)
# Prepare plots
fig = plt.figure(figsize=(20, 4*nData))
gs = gridspec.GridSpec(nData,3, width_ratios=[1,6,1])
ax, dataOut = [], []
for d in np.arange(0, len(trackingData)):
aviProps = props[d]
trackData = trackingData[d]
dataOut.append(trackData[:,1])
ax1, ax2, ax3 = d*3+0, d*3+1, d*3+2
ax.append(fig.add_subplot(gs[ax1]))
ax.append(fig.add_subplot(gs[ax2]))
ax.append(fig.add_subplot(gs[ax3]))
# Plot tracking
ax[ax1].plot(trackData[:,0],trackData[:,1],colors[d])
# Plot Y over time
timePerFrame = 1./aviProps[4]
timePerFrame = timePerFrame/60. # convert from seconds to minutes
tAxis = np.arange(0, len(trackData)*timePerFrame, timePerFrame)
if len(tAxis)>len(trackData): tAxis = np.delete(tAxis, -1)
if len(tAxis)<len(trackData): trackData = np.delete(trackData, -1)
smooth_trackData = smooth.smooth(trackData[:,1], window_len=50)
ax[ax2].plot(tAxis, trackData[:,1],'k',lw=1)
ax[ax2].plot(tAxis, smooth_trackData, colors[d], lw=1.5)
# Plot histogram
ax[ax3].hist(trackData[:,1], bins=30, orientation='horizontal', histtype='stepfilled', normed=True, color=colors[d])
ax[ax3].set_xlim([0,0.008])
# get and plot looms
#loomOnsets = da.getLoomOnsets(trackData, aviProps)
#for l in loomOnsets: ax[ax2].plot(l, 1150, marker='o', markerfacecolor='k', markeredgecolor='k')
plt.show()
return dataOut
# ------------------------------------------
data, props = [], []
for d in dirList:
fname = d + '/trackingData.txt'
movieFname = d + '/trackingMovie.avi'
data.append(np.loadtxt(fname))
props.append(va.getAVIinfo(fname))
dataOut = plotTrackingData(data, props)