152 lines
6.2 KiB
Python
152 lines
6.2 KiB
Python
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/'
|
|
|
|
# lists
|
|
afx = [] # all_flat_x
|
|
|
|
###################################################################################################################
|
|
# load data
|
|
for filename_idx in [0, 1, 2, 3]:
|
|
filename = sorted(os.listdir('../data/'))[filename_idx]
|
|
all_xticks = np.load('../data/' + filename + '/all_xtickses.npy', allow_pickle=True)
|
|
|
|
# lists
|
|
afx.extend(np.unique(np.hstack(all_xticks)))
|
|
afx = sorted(np.unique(afx))
|
|
c = 0
|
|
###################################################################################################################
|
|
# make alm: all location matrix
|
|
alm = np.full([len(afx), 16], 0)
|
|
for filename_idx in [0, 1, 2, 3]:
|
|
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)
|
|
power_means = np.load('../data/' + filename + '/power_means.npy', allow_pickle=True)
|
|
names = np.load('../data/' + filename + '/fish_species.npy', allow_pickle=True)
|
|
|
|
for fish_number in range(len(power_means)):
|
|
if power_means[fish_number] >= -90 and names[fish_number] != 'unknown':
|
|
c += 1
|
|
x_tickses = all_xticks[fish_number]
|
|
max_ch_mean = all_max_ch_means[fish_number]
|
|
|
|
alm[np.flatnonzero(np.isin(afx, x_tickses)), max_ch_mean] += 1
|
|
|
|
hist = np.sum(alm, axis=0)/len(alm)
|
|
# hist = np.mean(alm, axis=0) #/len(alm)
|
|
# hist_err = np.std(alm, axis=0) #/len(alm)
|
|
|
|
###################################################################################################################
|
|
# figure
|
|
# fig1, [ax1, ax11] = plt.subplots(1, 2, figsize=(16 / inch, 10 / inch))
|
|
# fig1.subplots_adjust(left=0.12, bottom=0.15, right=0.99, top=0.99, wspace=0.0)
|
|
|
|
fig1 = plt.figure(figsize=[13 / inch, 10 / inch])
|
|
spec = gridspec.GridSpec(ncols=2, nrows=1, figure=fig1, hspace=0.5, wspace=0.05,
|
|
width_ratios=[7,1], left=0.12, bottom=0.15, right=0.99, top=0.95)
|
|
ax1 = fig1.add_subplot(spec[0, 0])
|
|
ax11 = fig1.add_subplot(spec[0, 1])
|
|
###################################################################################################################
|
|
# plot
|
|
ax1.imshow(alm[::20].T[::-1], vmin=0.0, vmax=7.0, aspect='auto', interpolation='gaussian',
|
|
extent=[afx[0], afx[-1], -0.5, 15.5])
|
|
ax1.beautimechannelaxis()
|
|
ax1.timeaxis()
|
|
# fig1.autofmt_xdate()
|
|
|
|
ax11.barh(np.arange(0,16), hist, color=color2[4])
|
|
# ax11.barh(np.arange(0,16), hist, color=color2[4], xerr=hist_err)
|
|
ax11.make_nice_ax()
|
|
|
|
ax11.set_ylim(-0.5,15.5)
|
|
ax11.set_yticks([])
|
|
ax11.set_xticks([])
|
|
ax11.invert_yaxis()
|
|
|
|
fig1.savefig(save_path+'all_trajectories.pdf')
|
|
|
|
x = np.array(afx)
|
|
x1 = np.where((x>=datetime_box[0])&(x<=datetime_box[2]))[0]
|
|
x2 = np.where((x>=datetime_box[4])&(x<=datetime_box[5]))[0]
|
|
y = np.concatenate((alm[x1],alm[x2]))
|
|
y_a=np.sum(y, axis=0)/len(y)
|
|
|
|
x3 = np.where((x>=datetime_box[2])&(x<=datetime_box[4]))[0]
|
|
y_b = np.sum(alm[x3], axis=0)/len(alm[x3])
|
|
|
|
fig2 = plt.figure(figsize=[13 / inch, 10 / inch])
|
|
spec = gridspec.GridSpec(ncols=2, nrows=1, figure=fig2, hspace=0.5, wspace=0.05,
|
|
width_ratios=[1, 1], left=0.12, bottom=0.15, right=0.99, top=0.95)
|
|
ax2 = fig2.add_subplot(spec[0, 0])
|
|
ax22 = fig2.add_subplot(spec[0, 1])
|
|
###################################################################################################################
|
|
# plot
|
|
ax2.barh(np.arange(1, 17), y_a, color=color2[4])
|
|
ax22.barh(np.arange(1, 17), y_b, color=color2[4])
|
|
|
|
for ax in [ax2, ax22]:
|
|
ax.make_nice_ax()
|
|
ax.set_ylim(-0.5, 15.5)
|
|
ax.set_ylim(0, 6.0)
|
|
# ax.set_xticks([])
|
|
ax.set_yticks([0, 1, 2, 3, 4, 5, 6, 7, 7.5, 8, 9, 10, 11, 12, 13, 14, 15])
|
|
ax.set_yticklabels(['1', '', '3', '', '5', '', '7', '', 'g', '', '10', '', '12', '', '14', '', '16'], fontsize=9)
|
|
ax.invert_yaxis()
|
|
ax22.set_yticklabels([])
|
|
|
|
plt.show()
|
|
|
|
embed()
|
|
quit()
|
|
|
|
###################################################################################################################
|
|
# figure 2: each day on its own
|
|
# for filename_idx in [1, 4, 6]:
|
|
# 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)
|
|
# power_means = np.load('../data/' + filename + '/power_means.npy', allow_pickle=True)
|
|
#
|
|
# # lists
|
|
# flat_x = np.unique(np.hstack(all_xticks))
|
|
# afx.extend(flat_x)
|
|
# location_matrix = np.full([len(flat_x), 16], 0)
|
|
#
|
|
# for fish_number in range(len(power_means)):
|
|
# # if power_means[fish_number] >= -65:
|
|
# x_tickses = all_xticks[fish_number]
|
|
# max_ch_mean = all_max_ch_means[fish_number]
|
|
#
|
|
# location_matrix[np.flatnonzero(np.isin(flat_x, x_tickses)), max_ch_mean] += 1
|
|
#
|
|
# fig2 = plt.figure(figsize=[16 / inch, 12 / inch])
|
|
# spec = gridspec.GridSpec(ncols=1, nrows=1, figure=fig2, hspace=0.5, wspace=0.5)
|
|
# ax2 = fig2.add_subplot(spec[0, 0])
|
|
#
|
|
# ax2.imshow(location_matrix[::20].T[::-1], aspect='auto', interpolation='gaussian', cmap='jet',
|
|
# extent=[flat_x[0], flat_x[-1], 0, 15])
|
|
# ax2.beautimechannelaxis()
|
|
# ax2.timeaxis()
|
|
# fig2.autofmt_xdate()
|
|
#
|
|
# plt.show()
|
|
# embed() |