diff --git a/plot_running_std.py b/plot_running_std.py new file mode 100644 index 0000000..1160bf6 --- /dev/null +++ b/plot_running_std.py @@ -0,0 +1,94 @@ +import numpy as np +import matplotlib.pyplot as plt +import matplotlib.dates as mdates +import matplotlib.colors as mcolors +import matplotlib.gridspec as gridspec +from IPython import embed +from scipy import stats +import math +import os +from IPython import embed +import helper_functions as hf +from params import * + +if __name__ == '__main__': + + ################################################################################################################### + # load data + ################################################################################################################### + # load all the data of one day + filename = sorted(os.listdir('../../../data/'))[1] + aifl = np.load('../data/'+filename+'/aifl2.npy', allow_pickle=True) + + # all_max_ch_means = np.load('../data/' + filename + '/all_max_ch_means.npy', allow_pickle=True) + all_xticks = np.load('../data/' + filename + '/all_xtickses.npy', allow_pickle=True) + all_Ctime_v = np.load('../data/' + filename + '/all_Ctime_v.npy', allow_pickle=True) + ipp = np.load('../data/' + filename + '/all_ipp.npy', allow_pickle=True) + power_means = np.load('../data/' + filename + '/power_means.npy', allow_pickle=True) + + ################################################################################################################### + # parameter and variables + ################################################################################################################### + # plot params + # variables + sampling_rate = 1/np.diff(all_Ctime_v[0])[0] # in sec + + # lists + fish_in_aifl = list(np.unique(np.where(~np.isnan(aifl[:, :, 0]))[1])) + thresholds = np.full(3, np.nan) + all_run_std = [] + ################################################################################################################### + # analysis + ################################################################################################################### + fig = plt.figure(figsize=(16, 14)) + spec = gridspec.GridSpec(ncols=2, nrows=2, figure=fig) + ax1 = fig.add_subplot(spec[0, 0]) + ax2 = fig.add_subplot(spec[0, 1]) + ax3 = fig.add_subplot(spec[1, 0]) + + for fish in range(len(fish_in_aifl)): + + run_mean, run_std = hf.running_3binsizes(ipp[fish], sampling_rate) + all_run_std.append(run_std) + + if len(np.arange(len(run_mean[2]))[~np.isnan(run_mean[2])]) < 10: + continue + + ########################################################################################################### + # plot + # hf.plot_running(all_xticks, run_mean, run_std, threshold, fish, color_vec, fs, fs_ticks, lw) + # plt.show() + + for ax_cntr ,ax in enumerate([ax1, ax2, ax3]): + non_nan = np.arange(len(run_mean[ax_cntr]))[~np.isnan(run_mean[ax_cntr])] + ax.plot(all_xticks[fish][non_nan], run_std[ax_cntr][non_nan], '.', color=color_vec[fish]) + ax.timeaxis() + ax.make_nice_ax() + + ax1.set_xlabel('Time [h]', fontsize=fs) + + rs = np.array(all_run_std) + + for idx in range(3): + rs1 = np.hstack(rs[:, idx]) + rs1 = rs1[~np.isnan(rs1)] + rs1 = rs1[rs1>0] + print(np.percentile(rs1, [5, 95, 50])) + thresholds[idx] = np.percentile(rs1, 50) + + if filename not in os.listdir('../data/'): + os.mkdir('../data/'+filename) + + np.save('../data/' + filename + '/thresholds.npy', thresholds) + + fig2, ax2 = plt.subplots() + + ax2.hist(np.hstack(rs[:,0]), bins=200) + ax2.hist(np.hstack(rs[:,1]), bins=200) + ax2.hist(np.hstack(rs[:,2]), bins=200) + plt.show() + + embed() + + + diff --git a/plot_trajec_5_47.py b/plot_trajec_5_47.py new file mode 100644 index 0000000..a2fa5cc --- /dev/null +++ b/plot_trajec_5_47.py @@ -0,0 +1,74 @@ +import numpy as np +import matplotlib.pyplot as plt +import matplotlib.dates as mdates +import matplotlib.gridspec as gridspec + +from IPython import embed +import helper_functions as hf +from params import * +import os +import datetime + +if __name__ == '__main__': + ################################################################################################################### + # parameter and variables + # plot params + inch = 2.45 + save_path = '../../thesis/Figures/Results/' + kernel_size = 100 + + fig = plt.figure(constrained_layout=True, figsize=[13 / inch, 15 / inch]) + gs = gridspec.GridSpec(ncols=1, nrows=2, figure=fig, hspace=0.05, wspace=0.0, + left=0.1, bottom=0.15, right=0.95, top=0.98) + + ax1 = fig.add_subplot(gs[0, 0]) + ax2 = fig.add_subplot(gs[1, 0]) + ################################################################################################################### + # load all the data of one day + + for filename_idx in [0]: + filename = sorted(os.listdir('../data/'))[filename_idx] + + all_max_ch_means = np.load('../data/' + filename + '/all_max_ch.npy', allow_pickle=True) + all_xticks = np.load('../data/' + filename + '/all_xtickses.npy', allow_pickle=True) + all_ipp = np.load('../data/' + filename + '/all_ipp.npy', allow_pickle=True) + power_means = np.load('../data/' + filename + '/power_means.npy', allow_pickle=True) + freq = np.load('../data/' + filename + '/fish_freq_q10.npy', allow_pickle=True) + ############################################################################################################### + # get fish + for fish_number, ax, ax_idx in zip([5,47], [ax1,ax2], [0, 1]): + if power_means[fish_number] >= -90.0: + ipp = all_ipp[fish_number] + x_tickses = all_xticks[fish_number] + max_ch_mean = all_max_ch_means[fish_number] + + # smoothing of max channel mean + kernel = np.ones(kernel_size) / kernel_size + smooth_mcm = np.convolve(max_ch_mean, kernel, 'valid') + + try: + smooth_x = x_tickses[int(np.ceil(kernel_size/2)):-int(np.floor(kernel_size/2))] + except: + embed() + quit() + + ##################################################################################################### + # plot traces + ax.imshow(ipp[::20].T[::-1], vmin=-100, vmax=-50, aspect='auto', interpolation='gaussian', + extent=[x_tickses[0], x_tickses[-1], -0.5, 15.5]) + try: + ax.plot(smooth_x[::20], smooth_mcm[::20], '.', color=color2[4]) + except: + continue + + ax.beautimechannelaxis() + ax.timeaxis() + ax.text(-0.12, 0.95, chr(ord('A') + ax_idx), transform=ax.transAxes, fontsize='large') + + + fig.savefig(save_path + 'trajectory_5_47.pdf') + # fig.savefig('../../../goettingen2021_poster/pictures/trajectory_5_47.pdf') + plt.show() + + + diff --git a/plot_transit_fish.py b/plot_transit_fish.py new file mode 100644 index 0000000..158d680 --- /dev/null +++ b/plot_transit_fish.py @@ -0,0 +1,267 @@ +import numpy as np +import matplotlib.pyplot as plt +import matplotlib.dates as mdates +import matplotlib.colors as mcolors +import matplotlib.gridspec as gridspec + +from IPython import embed +from scipy import stats +import os +from IPython import embed +import helper_functions as hf +from params import * +import itertools +from statisitic_functions import * + +if __name__ == '__main__': + ################################################################################################################### + # parameter and variables + # plot params + inch = 2.45 + save_path = '../../thesis/Figures/Results/' + + # kernel + kernel_size = 120 + kernel = np.ones(kernel_size) / kernel_size + + # counter + stl_counter = 0 + ax0_counter = 0 + + # transit: start, stop, dur + transit_data = [] + # transit: time, trajectory + xy_transit = [] + # transit: metadata: name, freq + transit_meta = [] + + # average speed + speed = [] + + ################################################################################################################### + # load data + ################################################################################################################### + + for day_idx in [0, 1, 2, 3]: + + filename = sorted(os.listdir('../data/'))[day_idx] + aifl = np.load('../data/' + filename + '/aifl2.npy', allow_pickle=True) + + all_xticks = np.load('../data/' + filename + '/all_xtickses.npy', allow_pickle=True) + all_max_ch_means = np.load('../data/' + filename + '/all_max_ch.npy', allow_pickle=True) + power_means = np.load('../data/' + filename + '/power_means.npy', allow_pickle=True) + all_hms = np.load('../data/' + filename + '/all_hms.npy', allow_pickle=True) + freq = np.load('../data/' + filename + '/fish_freq_q10.npy', allow_pickle=True) + names = np.load('../data/' + filename + '/fish_species.npy', allow_pickle=True) + ############################################################################################################### + # lists + fish_in_aifl = list(np.unique(np.where(~np.isnan(aifl[:, :, 0]))[1])) + # directs = [] + flat_x = np.unique(np.hstack(all_xticks)) + + ############################################################################################################### + # analysis of the changes and trajectories + for fish_number in range(len(power_means)): + if power_means[fish_number] >= -90.0: + + x_tickses = all_xticks[fish_number] + max_ch_mean = all_max_ch_means[fish_number] + + # smoothing of max channel mean + kernel = np.ones(kernel_size) / kernel_size + smooth_mcm = np.convolve(max_ch_mean, kernel, 'valid') + + smooth_x = x_tickses[int(np.ceil(kernel_size / 2)):-int(np.floor(kernel_size / 2) - 1)] + + # interpolate + fish_x = flat_x[np.where(flat_x == x_tickses[0])[0][0]:np.where(flat_x == x_tickses[-1])[0][0] + 1] + try: + trajectory = np.round(np.interp(fish_x, smooth_x, smooth_mcm)) + except: + continue + + # trial duration + t_s = datetime.timedelta(np.diff([fish_x[0], fish_x[-1]])[0]) + trial_dur = t_s.total_seconds() / 60 + + # average speed + speed.append(np.sum(np.abs(np.diff(trajectory))) / trial_dur) + + # activity vs. time + t = np.array(all_hms[fish_number] / 60 / 60) + + # swim through + first = fish_x[0] + last = fish_x[-1] + + start15 = mdates.date2num(mdates.num2date(first) + datetime.timedelta(seconds=2 * 60)) + stop15 = mdates.date2num(mdates.num2date(last) - datetime.timedelta(seconds=2 * 60)) + + y = trajectory + # t = np.roll(t, int(len(np.unique(np.hstack(all_hms)))/2)) + + if np.any(trajectory[fish_x < start15] >= 13) and np.any(trajectory[fish_x > stop15] <= 2): + + xy_transit.append(np.array([t, y])) + transit_data.append(np.array([t[0], t[-1], trial_dur, day_idx])) + transit_meta.append([names[fish_number], freq[fish_number,2]]) + + elif np.any(trajectory[fish_x < start15] <= 2) and np.any(trajectory[fish_x > stop15] >= 13): + xy_transit.append(np.array([t, y])) + transit_data.append(np.array([t[0], t[-1], trial_dur, day_idx])) + transit_meta.append([names[fish_number], freq[fish_number,2]]) + + elif np.any(trajectory[fish_x < start15] <= 1) \ + and np.any(trajectory[fish_x > stop15] >= 6) \ + and np.any(trajectory[fish_x > stop15] <= 7): + + xy_transit.append(np.array([t, y])) + transit_data.append(np.array([t[0], t[-1], trial_dur, day_idx])) + transit_meta.append([names[fish_number], freq[fish_number,2]]) + + elif np.any(trajectory[fish_x < start15] >= 6) \ + and np.any(trajectory[fish_x < start15] <= 7) \ + and np.any(trajectory[fish_x > stop15] <= 1): + + xy_transit.append(np.array([t, y])) + transit_data.append(np.array([t[0], t[-1], trial_dur, day_idx])) + transit_meta.append([names[fish_number], freq[fish_number,2]]) + + elif np.any(trajectory[fish_x < start15] >= 14) \ + and np.any(trajectory[fish_x > stop15] >= 8) \ + and np.any(trajectory[fish_x > stop15] <= 9): + + xy_transit.append(np.array([t, y])) + transit_data.append(np.array([t[0], t[-1], trial_dur, day_idx])) + transit_meta.append([names[fish_number], freq[fish_number,2]]) + + elif np.any(trajectory[fish_x < start15] >= 8) \ + and np.any(trajectory[fish_x < start15] <= 9) \ + and np.any(trajectory[fish_x > stop15] >= 14): + + xy_transit.append(np.array([t, y])) + transit_data.append(np.array([t[0], t[-1], trial_dur, day_idx])) + transit_meta.append([names[fish_number], freq[fish_number,2]]) + + else: + continue + + transit_data = np.array(transit_data) + + ############################################################################################################### + # figure 1: time points of transit fish and trajectories + fig = plt.figure(constrained_layout=True, figsize=[15 / inch, 12 / inch]) + gs = gridspec.GridSpec(ncols=2, nrows=3, figure=fig, hspace=0.05, wspace=0.0, + height_ratios=[1, 1, 1], left=0.1, bottom=0.15, right=0.95, top=0.95) + + ax0 = fig.add_subplot(gs[0, :]) + ax1 = fig.add_subplot(gs[1, 0]) + ax2 = fig.add_subplot(gs[1, 1]) + ax3 = fig.add_subplot(gs[2, 0]) + ax4 = fig.add_subplot(gs[2, 1]) + + ############################################################################################################### + # plotting + color_list = [0, 1, 4, 6] + for ploti in range(len(transit_data)): + if transit_data[ploti, 2] < 3 * 60: + # colori = color_list[int(transit_data[ploti, 3])] + + if transit_meta[ploti][0] == 'Eigenmannia': + colori = 0 + elif transit_meta[ploti][1] < 750: + colori = 1 + else: + colori = 2 + + # plot time when fish is there + if transit_data[ploti, 0]<12: + roll_factor = 12 + else: + roll_factor = -12 + ax0.plot(transit_data[ploti, :2] + roll_factor, [ax0_counter, ax0_counter], color=color_efm[colori], lw=3, + label=labels[colori]) + ax0_counter += 1 + if transit_data[ploti + 1, 3] != transit_data[ploti, 3]: + ax0.plot([0, 24], [ax0_counter, ax0_counter], color=color_diffdays[0], lw=1, linestyle='dashed') + print(ax0_counter, transit_data[ploti, 3], transit_data[ploti+1, 3]) + ax0_counter += 1 + + # plot trajectories + if transit_data[ploti, 0] > 1 and transit_data[ploti, 1] <= 3.5: + ax2.plot(xy_transit[ploti][0], xy_transit[ploti][1], color=color_efm[colori]) + ax2.set_xlim([1, 3.1]) + ax2.set_xticks([1,2,3]) + ax2.set_xticklabels(['01:00', '02:00', '03:00']) + + elif transit_data[ploti, 0] > 2.5 and transit_data[ploti, 1] <= 5: + ax4.plot(xy_transit[ploti][0], xy_transit[ploti][1], color=color_efm[colori]) + ax4.set_xlim([3, 5]) + ax4.set_xticks([3,4,5]) + ax4.set_xticklabels(['03:00', '04:00', '05:00']) + + elif transit_data[ploti, 0] > 18 and transit_data[ploti, 1] <= 20: + ax1.plot(xy_transit[ploti][0], xy_transit[ploti][1], color=color_efm[colori]) + ax1.set_xlim([18, 20]) + ax1.set_xticks([18,19,20]) + ax1.set_xticklabels(['18:00', '19:00', '20:00']) + + elif transit_data[ploti, 0] > 20 and transit_data[ploti, 1] <= 22: + ax3.plot(xy_transit[ploti][0], xy_transit[ploti][1], color=color_efm[colori]) + ax3.set_xlim([20, 22]) + ax3.set_xticks([20,21,22]) + ax3.set_xticklabels(['20:00', '21:00', '22:00']) + + ################################################################################################################# + # nice axis + tagx = [-0.07, -0.17, -0.07, -0.17, -0.07] + tagy = [0.95,1.05,1.05,1.05,1.05] + for ax_idx, axis in enumerate([ax0,ax1,ax2,ax3,ax4]): + axis.text(tagx[ax_idx], tagy[ax_idx], chr(ord('A') + ax_idx), transform=axis.transAxes, fontsize='large') + axis.make_nice_ax() + axis.invert_yaxis() + if axis != ax0: + axis.axhline(7.5, xmin=0, xmax=15, color='white', lw=2) + # ax.set_yticklabels([1, 3, 5, 7, 14, 16, 18, 20]) + axis.set_yticks([0, 1, 2, 3, 4, 5, 6, 7, 7.5, 8, 9, 10, 11, 12, 13, 14, 15]) + axis.set_yticklabels([]) + if axis == ax1 or axis == ax3: + axis.set_yticklabels(['1', '', '', '', '5', '', '', '', 'gap', '', '', '', '12', '', '', '', '16']) + axis.set_ylabel('Electrode', fontsize=11) + + if axis == ax3 or axis == ax4: + axis.set_xlabel('Time', fontsize=11) + + daytagy = [0.1, 0.5, 0.9] + for dayi in [0,1,2]: + ax0.text(0.02, daytagy[dayi], 'Day '+ str(dayi), transform=ax0.transAxes, fontsize='small', va='center', ha='left') + + ax0.set_ylabel('Fish') + ax0.set_yticks([]) + ax0.set_xlim([-0.1, 24.1]) + ax0.set_xticks(np.arange(0, 25, 3)) + ax0.set_xticklabels(['12:00', '15:00', '18:00', '21:00', '00:00', '03:00', '06:00', '09:00', '12:00']) + + fig.align_ylabels() + # handles, labels = ax0.get_legend_handles_labels() + # unique = [(h, l) for lwdl_idx, (h, l) in enumerate(zip(handles, labels)) if l not in labels[:lwdl_idx]] + # ax0.legend(*zip(*unique), bbox_to_anchor=(1, 1), loc="upper right", bbox_transform=fig.transFigure, ncol=1) + # fig.legend() + fig.savefig(save_path + 'transit.pdf') + plt.show() + + + + ############################################################################################################### + # speed + c = np.load('../data/all_changes.npy', allow_pickle=True) + stl = np.load('../data/stl.npy', allow_pickle=True) + + speeds = [] + for ploti in range(len(transit_data)): + if transit_data[ploti, 2] < 3 * 60: + speeds.append((np.max(xy_transit[ploti][1])-np.min(xy_transit[ploti][1]))/transit_data[ploti, 2]) + + min =(np.mean(speeds)-np.std(speeds))*60*12 + max =(np.mean(speeds)+np.std(speeds))*60*12/1000 + embed() diff --git a/plot_when_are_you.py b/plot_when_are_you.py new file mode 100644 index 0000000..eb175b7 --- /dev/null +++ b/plot_when_are_you.py @@ -0,0 +1,174 @@ +import numpy as np +import matplotlib.pyplot as plt +import matplotlib.dates as mdates +import matplotlib.colors as mcolors +import matplotlib.gridspec as gridspec +from IPython import embed +from scipy import stats +import math +import os +from IPython import embed +import helper_functions as hf +from params import * + +if __name__ == '__main__': + + ################################################################################################################### + # parameter and variables + ################################################################################################################### + # plot params + inch = 2.45 + save_path = '../../thesis/Figures/Results/' + + all_begins = [] + all_ends = [] + begins = [] + ends = [] + durations = [] + all_durations = [] + start = [] + stop = [] + + # plot + fig2, ax2 = plt.subplots(1, 1, figsize=(16 / inch, 6 / inch)) + fig2.subplots_adjust(left=0.12, bottom=0.2, right=0.95, top=0.97) + + c = 0 + ################################################################################################################### + # load data + ################################################################################################################### + # load all the data of one day + for index, filename_idx in enumerate([0, 1, 2, 3]): + filename = sorted(os.listdir('../data/'))[filename_idx] + all_xticks = np.load('../data/' + filename + '/all_xtickses.npy', allow_pickle=True) + all_Ctime_v = np.load('../data/' + filename + '/all_Ctime_v.npy', allow_pickle=True) + power_means = np.load('../data/' + filename + '/power_means.npy', allow_pickle=True) + names = np.load('../data/' + filename + '/fish_species.npy', allow_pickle=True) + + # variables + sampling_rate = 1 / np.diff(all_Ctime_v[0])[0] # in sec + first = np.min(np.unique(np.hstack(all_xticks))) + last = np.max(np.unique(np.hstack(all_xticks))) + start15 = mdates.date2num(mdates.num2date(first) + datetime.timedelta(seconds=15 * 60)) + stop15 = mdates.date2num(mdates.num2date(last) - datetime.timedelta(seconds=15 * 60)) + trial_dur = (np.max(np.unique(np.hstack(all_Ctime_v))) - np.min(np.unique(np.hstack(all_Ctime_v)))) / 60 + + start.extend([first]) + stop.extend([last]) + + # plot + ax2.plot(trial_dur, 90, 'o', ms=ms, color=color_diffdays[index]) + print(trial_dur) + + ############################################################################################################### + # analysis + ############################################################################################################### + for fish in range(len(all_xticks)): + if power_means[fish] >= -90 and names[fish] != 'unknown': + c += 1 + if np.any(all_xticks[fish] <= start15) or np.any(all_xticks[fish] >= stop15): + all_durations.append((all_Ctime_v[fish][-1] - all_Ctime_v[fish][0]) / 60) + + else: + durations.append((all_Ctime_v[fish][-1] - all_Ctime_v[fish][0]) / 60) + all_durations.append((all_Ctime_v[fish][-1] - all_Ctime_v[fish][0]) / 60) + + + ################################################################################################################### + # plotting figure 2 + dur = np.array(durations) + all_dur = np.array(all_durations) + + n3, bin_edges3 = np.histogram(dur, bins=np.linspace(0, 950, 20)) + n4, bin_edges4 = np.histogram(all_dur, bins=np.linspace(0, 950, 20)) + # n3 = n3 / np.sum(n3) / (bin_edges3[1] - bin_edges3[0]) + + ax2.bar(bin_edges4[:-1] + (bin_edges4[1] - bin_edges4[0]) / 2, n4, + width=0.9 * (bin_edges4[1] - bin_edges4[0]), label='all', color=color2[5]) + ax2.bar(bin_edges3[:-1] + (bin_edges3[1] - bin_edges3[0]) / 2, n3, + width=0.9 * (bin_edges3[1] - bin_edges3[0]), label='corrected', color=color2[4]) + + ax2.set_xlabel('Presence duration [min]', fontsize=fs) + ax2.set_ylabel('n', fontsize=fs) + ax2.make_nice_ax() + # ax2.set_ylim([0, 10**2]) + ax2.set_yscale('symlog') + fig2.legend(loc='center right') + # fig2.savefig(save_path+'appearance_dur.png') + fig2.savefig(save_path+'duration.pdf') + plt.show() + + embed() + quit() + + # ################################################################################################################### + # # plotting figure 1 + # fig1, ax1 = plt.subplots(1, 1, figsize=(16 / inch, 8 / inch)) + # fig1.subplots_adjust(left=0.12, bottom=0.3, right=0.95, top=0.97) + + # n1, bin_edges1 = np.histogram(begins, bins=35) + # n2, bin_edges2 = np.histogram(ends, bins=bin_edges1) + # n11, bin_edges2 = np.histogram(all_begins, bins=bin_edges1) + # n21, bin_edges2 = np.histogram(all_ends, bins=bin_edges1) + # n1 = n1 / np.sum(n1) / (bin_edges1[1] - bin_edges1[0]) + # n2 = n2 / np.sum(n2) / (bin_edges1[1] - bin_edges1[0]) + # # n11 = n11 / np.sum(n11) / (bin_edges1[1] - bin_edges1[0]) + # # n21 = n21 / np.sum(n21) / (bin_edges1[1] - bin_edges1[0]) + # + # ax1.bar(bin_edges1[:-1] + (bin_edges1[1] - bin_edges1[0]) / 2, n11, + # width=0.9 * (bin_edges1[1] - bin_edges1[0]), color=color2[2]) + # ax1.bar(bin_edges1[:-1] + (bin_edges1[1] - bin_edges1[0]) / 2, n1, + # width=0.9 * (bin_edges1[1] - bin_edges1[0]), color=color2[0], label='appearance') + # + # ax1.bar(bin_edges1[:-1] + (bin_edges1[1] - bin_edges1[0]) / 2, n21 * -1, + # width=0.9 * (bin_edges1[1] - bin_edges1[0]), color=color2[3]) + # ax1.bar(bin_edges1[:-1] + (bin_edges1[1] - bin_edges1[0]) / 2, n2 * -1, + # width=0.9 * (bin_edges1[1] - bin_edges1[0]), color=color2[1], label='disappearance') + # ax1.axhline(y=0.0, xmin=0.0, xmax=1.0, color='k', linewidth=lw) + # + # ax1.set_xlabel('Time', fontsize=fs) + # ax1.set_ylabel('n', fontsize=fs) + # ax1.timeaxis() + # ax1.set_yscale('symlog') + # fig1.autofmt_xdate() + # ax1.make_nice_ax() + # fig1.legend(loc='upper right') + + # fig1.savefig(save_path+'appearance_disappearance.png') + # fig1.savefig(save_path+'appearance_disappearance.pdf') + ################################################################################################################### + # plotting figure 3 + # fig3 = plt.figure(figsize=[16 / inch, 12 / inch]) + # spec = gridspec.GridSpec(ncols=1, nrows=2, figure=fig3, hspace=0.3, wspace=0.15, + # height_ratios=[1, 1], left=0.1, bottom=0.15, right=0.99, top=0.98) + # ax3 = fig3.add_subplot(spec[0, 0]) + # ax4 = fig3.add_subplot(spec[1, 0]) + # ax3.bar(bin_edges1[:-1] + (bin_edges1[1] - bin_edges1[0]) / 2, n1, + # width=0.9 * (bin_edges1[1] - bin_edges1[0]), color=color2[0], label='appearance') + # ax3.bar(bin_edges1[:-1] + (bin_edges1[1] - bin_edges1[0]) / 2, n2 * -1, + # width=0.9 * (bin_edges1[1] - bin_edges1[0]), color=color2[1], label='disappearance') + # ax3.axhline(y=0.0, xmin=0.0, xmax=1.0, color='k', linewidth=lw) + # + # ax3.set_xlabel('Time', fontsize=fs) + # ax3.set_ylabel('n', fontsize=fs) + # ax3.timeaxis() + # fig3.autofmt_xdate() + # ax3.make_nice_ax() + # # fig3.legend(loc='upper right') + # + # ax4.bar(bin_edges4[:-1] + (bin_edges4[1] - bin_edges4[0]) / 2, n4, + # width=0.9 * (bin_edges4[1] - bin_edges4[0]), label='all', color=color2[2]) + # ax4.bar(bin_edges3[:-1] + (bin_edges3[1] - bin_edges3[0]) / 2, n3, + # width=0.9 * (bin_edges3[1] - bin_edges3[0]), label='corrected', color=color2[0]) + # + # ax4.set_xlabel('Presence duration [min]', fontsize=fs) + # ax4.set_ylabel('n', fontsize=fs) + # ax4.make_nice_ax() + # fig3.legend(loc='upper right') + # + # fig3.savefig(save_path+'appearance_all.pdf') + # exit() + # if filename not in os.listdir('../data/'): + # os.mkdir('../data/'+filename) + # + # np.save('../data/' + filename + '/direction.npy', directs) diff --git a/replace_channel.py b/replace_channel.py new file mode 100644 index 0000000..980989c --- /dev/null +++ b/replace_channel.py @@ -0,0 +1,24 @@ +import numpy as np +import matplotlib.pyplot as plt +import matplotlib.dates as mdates +import matplotlib.colors as mcolors +import matplotlib.gridspec as gridspec +from IPython import embed +from scipy import stats +import math +import os +from IPython import embed +import helper_functions as hf +from params import * + +if __name__ == '__main__': + ################################################################################################################### + # load data + ################################################################################################################### + # load all the data of one day + + to_be_changed_ident = np.load('../../../Desktop/2019-10-08-18_07/all_ident_v.npy', allow_pickle=True) + correct_ident = np.load('../../../Desktop/2019-10-08-18_07_old/all_ident_v.npy', allow_pickle=True) + + embed() + quit() \ No newline at end of file