wilcoxon test

This commit is contained in:
weygoldt 2023-01-25 21:26:52 +01:00
parent f5c922c4ff
commit 2ee5a350fd
5 changed files with 83 additions and 62 deletions

View File

@ -1,4 +1,5 @@
import numpy as np import numpy as np
from extract_chirps import get_valid_datasets
import os import os
@ -116,6 +117,8 @@ def main(datapath: str):
foldernames = [ foldernames = [
datapath + x + '/' for x in os.listdir(datapath) if os.path.isdir(datapath+x)] datapath + x + '/' for x in os.listdir(datapath) if os.path.isdir(datapath+x)]
foldernames, _ = get_valid_datasets(datapath)
path_order_meta = ( path_order_meta = (
'/').join(foldernames[0].split('/')[:-2]) + '/order_meta.csv' '/').join(foldernames[0].split('/')[:-2]) + '/order_meta.csv'
order_meta_df = read_csv(path_order_meta) order_meta_df = read_csv(path_order_meta)
@ -223,7 +226,8 @@ def main(datapath: str):
size_chirps_diffs.append(chirp_winner - chirp_loser) size_chirps_diffs.append(chirp_winner - chirp_loser)
freq_diffs.append(freq_winner - freq_loser) freq_diffs.append(freq_winner - freq_loser)
fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(22*ps.cm, 12*ps.cm), width_ratios=[1.5, 1,1]) fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(
22*ps.cm, 12*ps.cm), width_ratios=[1.5, 1, 1])
plt.subplots_adjust(left=0.098, right=0.945, top=0.94, wspace=0.343) plt.subplots_adjust(left=0.098, right=0.945, top=0.94, wspace=0.343)
scatterwinner = 1.15 scatterwinner = 1.15
scatterloser = 1.85 scatterloser = 1.85

View File

@ -1,10 +1,11 @@
import numpy as np import numpy as np
from extract_chirps import get_valid_datasets
import os import os
import numpy as np import numpy as np
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
from scipy.stats import pearsonr, spearmanr from scipy.stats import pearsonr, spearmanr, wilcoxon
from thunderfish.powerspectrum import decibel from thunderfish.powerspectrum import decibel
from IPython import embed from IPython import embed
@ -182,6 +183,7 @@ def main(datapath: str):
foldernames = [ foldernames = [
datapath + x + '/' for x in os.listdir(datapath) if os.path.isdir(datapath+x)] datapath + x + '/' for x in os.listdir(datapath) if os.path.isdir(datapath+x)]
foldernames, _ = get_valid_datasets(datapath)
path_order_meta = ( path_order_meta = (
'/').join(foldernames[0].split('/')[:-2]) + '/order_meta.csv' '/').join(foldernames[0].split('/')[:-2]) + '/order_meta.csv'
order_meta_df = read_csv(path_order_meta) order_meta_df = read_csv(path_order_meta)
@ -242,24 +244,25 @@ def main(datapath: str):
size_chirps_winner.append(chirp_winner) size_chirps_winner.append(chirp_winner)
size_chirps_loser.append(chirp_loser) size_chirps_loser.append(chirp_loser)
size_winner_pearsonr = pearsonr(size_diffs_winner, size_chirps_winner) size_winner_pearsonr = pearsonr(size_diffs_winner, size_chirps_winner)
size_loser_pearsonr = pearsonr(size_diffs_loser, size_chirps_loser) size_loser_pearsonr = pearsonr(size_diffs_loser, size_chirps_loser)
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=( fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(
22*ps.cm, 12*ps.cm), sharey=True) 13*ps.cm, 10*ps.cm), sharey=True)
plt.subplots_adjust(left=0.098, right=0.945, top=0.94, wspace=0.343) plt.subplots_adjust(left=0.098, right=0.945, top=0.94, wspace=0.343)
scatterwinner = 1.15 scatterwinner = 1.15
scatterloser = 1.85 scatterloser = 1.85
chirps_winner = np.asarray(chirps_winner)[~np.isnan(chirps_winner)] chirps_winner = np.asarray(chirps_winner)[~np.isnan(chirps_winner)]
chirps_loser = np.asarray(chirps_loser)[~np.isnan(chirps_loser)] chirps_loser = np.asarray(chirps_loser)[~np.isnan(chirps_loser)]
stat = wilcoxon(chirps_winner, chirps_loser)
print(stat)
bplot1 = ax1.boxplot(chirps_winner, positions=[ bplot1 = ax1.boxplot(chirps_winner, positions=[
1], showfliers=False, patch_artist=True) 0.9], showfliers=False, patch_artist=True)
bplot2 = ax1.boxplot(chirps_loser, positions=[ bplot2 = ax1.boxplot(chirps_loser, positions=[
2], showfliers=False, patch_artist=True) 2.1], showfliers=False, patch_artist=True)
ax1.scatter(np.ones(len(chirps_winner)) * ax1.scatter(np.ones(len(chirps_winner)) *
scatterwinner, chirps_winner, color=ps.red) scatterwinner, chirps_winner, color=ps.red)
ax1.scatter(np.ones(len(chirps_loser)) * ax1.scatter(np.ones(len(chirps_loser)) *
@ -270,19 +273,27 @@ def main(datapath: str):
for w, l in zip(chirps_winner, chirps_loser): for w, l in zip(chirps_winner, chirps_loser):
ax1.plot([scatterwinner, scatterloser], [w, l], ax1.plot([scatterwinner, scatterloser], [w, l],
color='r', alpha=0.5, linewidth=0.5) color=ps.white, alpha=1, linewidth=0.5)
ax1.set_ylabel('Chirps [n]', color=ps.white) ax1.set_ylabel('chirps [n]', color=ps.white)
ax1.set_xlabel('outcome', color=ps.white)
colors1 = ps.red colors1 = ps.red
ps.set_boxplot_color(bplot1, colors1) ps.set_boxplot_color(bplot1, colors1)
colors1 = ps.orange colors1 = ps.orange
ps.set_boxplot_color(bplot2, colors1) ps.set_boxplot_color(bplot2, colors1)
ax2.scatter(size_diffs_winner, size_chirps_winner, color=ps.red) ax2.scatter(size_diffs_winner, size_chirps_winner,
ax2.scatter(size_diffs_loser, size_chirps_loser, color=ps.orange) color=ps.red, label='winner')
ax2.scatter(size_diffs_loser, size_chirps_loser,
color=ps.orange, label='loser')
ax2.set_xlabel('size difference [cm]')
# ax2.set_xticks(np.arange(-10, 10.1, 2))
handles, labels = ax2.get_legend_handles_labels()
fig.legend(handles, labels, loc='upper center', ncol=2)
plt.subplots_adjust(left=0.162, right=0.97, top=0.85, bottom=0.176)
ax2.set_xlabel('Size difference [cm]')
ax2.set_xticks(np.arange(-10, 10.1, 2))
# pearson r # pearson r
plt.savefig('../poster/figs/chirps_winner_loser.pdf') plt.savefig('../poster/figs/chirps_winner_loser.pdf')
plt.show() plt.show()

View File

@ -12,6 +12,7 @@ from modules.logger import makeLogger
from modules.plotstyle import PlotStyle from modules.plotstyle import PlotStyle
from modules.behaviour_handling import Behavior, correct_chasing_events from modules.behaviour_handling import Behavior, correct_chasing_events
from extract_chirps import get_valid_datasets
ps = PlotStyle() ps = PlotStyle()
logger = makeLogger(__name__) logger = makeLogger(__name__)
@ -19,7 +20,9 @@ logger = makeLogger(__name__)
def main(datapath: str): def main(datapath: str):
foldernames = [datapath + x + '/' for x in os.listdir(datapath) if os.path.isdir(datapath+x)] foldernames = [
datapath + x + '/' for x in os.listdir(datapath) if os.path.isdir(datapath+x)]
foldernames, _ = get_valid_datasets(datapath)
for foldername in foldernames: for foldername in foldernames:
#foldername = foldernames[0] #foldername = foldernames[0]
if foldername == '../data/mount_data/2020-05-12-10_00/': if foldername == '../data/mount_data/2020-05-12-10_00/':
@ -47,14 +50,18 @@ def main(datapath: str):
fish1_color = ps.red fish1_color = ps.red
fish2_color = ps.orange fish2_color = ps.orange
fig, ax = plt.subplots(4, 1, figsize=(21*ps.cm, 13*ps.cm), height_ratios=[0.5, 0.5, 0.5, 6], sharex=True) fig, ax = plt.subplots(4, 1, figsize=(
21*ps.cm, 13*ps.cm), height_ratios=[0.5, 0.5, 0.5, 6], sharex=True)
# marker size # marker size
s = 200 s = 200
ax[0].scatter(physical_contact, np.ones(len(physical_contact)), color='firebrick', marker='|', s=s) ax[0].scatter(physical_contact, np.ones(
ax[1].scatter(chasing_onset, np.ones(len(chasing_onset)), color='green', marker='|', s=s ) len(physical_contact)), color='firebrick', marker='|', s=s)
ax[2].scatter(fish1, np.ones(len(fish1))-0.25, color=fish1_color, marker='|', s=s) ax[1].scatter(chasing_onset, np.ones(len(chasing_onset)),
ax[2].scatter(fish2, np.zeros(len(fish2))+0.25, color=fish2_color, marker='|', s=s) color='green', marker='|', s=s)
ax[2].scatter(fish1, np.ones(len(fish1))-0.25,
color=fish1_color, marker='|', s=s)
ax[2].scatter(fish2, np.zeros(len(fish2))+0.25,
color=fish2_color, marker='|', s=s)
freq_temp = bh.freq[bh.ident == fish1_id] freq_temp = bh.freq[bh.ident == fish1_id]
time_temp = bh.time[bh.idx[bh.ident == fish1_id]] time_temp = bh.time[bh.idx[bh.ident == fish1_id]]
@ -73,7 +80,6 @@ def main(datapath: str):
ax[0].set_yticks([]) ax[0].set_yticks([])
ps.hide_ax(ax[0]) ps.hide_ax(ax[0])
ax[1].grid(False) ax[1].grid(False)
ax[1].set_frame_on(False) ax[1].set_frame_on(False)
ax[1].set_xticks([]) ax[1].set_xticks([])
@ -86,16 +92,17 @@ def main(datapath: str):
ax[2].set_xticks([]) ax[2].set_xticks([])
ps.hide_ax(ax[2]) ps.hide_ax(ax[2])
ax[3].axvspan(3, 6, 0, 5, facecolor='grey', alpha=0.5) ax[3].axvspan(3, 6, 0, 5, facecolor='grey', alpha=0.5)
ax[3].set_xticks(np.arange(0, 6.1, 0.5)) ax[3].set_xticks(np.arange(0, 6.1, 0.5))
labelpad = 40 labelpad = 40
fsize = 12 fsize = 12
ax[0].set_ylabel('Physical contact', rotation=0, labelpad=labelpad, fontsize=fsize) ax[0].set_ylabel('Physical contact', rotation=0,
ax[1].set_ylabel('Chasing events', rotation=0, labelpad=labelpad, fontsize=fsize) labelpad=labelpad, fontsize=fsize)
ax[2].set_ylabel('Chirps', rotation=0, labelpad=labelpad, fontsize=fsize) ax[1].set_ylabel('Chasing events', rotation=0,
labelpad=labelpad, fontsize=fsize)
ax[2].set_ylabel('Chirps', rotation=0,
labelpad=labelpad, fontsize=fsize)
ax[3].set_ylabel('EODf') ax[3].set_ylabel('EODf')
ax[3].set_xlabel('Time [h]') ax[3].set_xlabel('Time [h]')
@ -105,7 +112,6 @@ def main(datapath: str):
# plt.savefig('../poster/figs/timeline.pdf') # plt.savefig('../poster/figs/timeline.pdf')
plt.show() plt.show()
# plot chirps # plot chirps

Binary file not shown.

BIN
poster/main.pdf Normal file

Binary file not shown.