Added and described two single-kernel Thresh-LP invariance figures in main.tex.

This commit is contained in:
j-hartling
2026-03-11 15:21:22 +01:00
parent 4494bc7783
commit 4f5054c8fd
16 changed files with 4958 additions and 274 deletions

View File

@@ -6,7 +6,8 @@ from thunderhopper.filetools import search_files
from thunderhopper.modeltools import load_data
from color_functions import load_colors
from plot_functions import hide_axis, ylimits, xlabel, ylabel,\
plot_line, strip_zeros, time_bar
plot_line, strip_zeros, time_bar,\
letter_subplot, letter_subplots
from IPython import embed
def add_snip_axes(fig, grid_kwargs):
@@ -128,26 +129,17 @@ xloc = dict(
)
letter_snip_kwargs = dict(
x=0.02,
y=1,
y=0.97,
ha='left',
va='top',
fontsize=22,
fontweight='bold'
)
letter_analysis_kwargs = dict(
x=0,
y=1,
yref=letter_snip_kwargs['y'],
ha='left',
va='top',
fontsize=22,
fontweight='bold'
)
indicate_unsaturated = False
unsaturated_proportion = 0.85
unsaturated_kwargs = dict(
color=3 * (0.85,),
zorder=0,
lw=0
)
bar_time = 5
bar_kwargs = dict(
@@ -179,7 +171,6 @@ for data_path in data_paths:
transform=pure_subfig.transSubfigure)
for ax, scale in zip(pure_axes[snip_specs['env']], pure_data['example_scales']):
ax.set_title(f'$\\alpha={strip_zeros(scale)}$')
pure_subfig.text(s='a', **letter_snip_kwargs)
# Prepare noise-song snippet axes:
noise_subfig = fig.add_subfigure(super_grid[subfig_specs['noise']])
@@ -191,7 +182,7 @@ for data_path in data_paths:
transform=noise_subfig.transSubfigure)
for ax, scale in zip(noise_axes[snip_specs['env']], noise_data['example_scales']):
ax.set_title(f'$\\alpha={strip_zeros(scale)}$')
noise_subfig.text(s='b', **letter_snip_kwargs)
letter_subplots([pure_subfig, noise_subfig], **letter_snip_kwargs)
# Prepare analysis axis:
analysis_subfig = fig.add_subfigure(super_grid[subfig_specs['analysis']])
@@ -204,7 +195,7 @@ for data_path in data_paths:
analysis_ax.set_yscale('log')
ylabel(analysis_ax, ylabels['analysis'], **ylab_analysis_kwargs,
transform=analysis_subfig.transSubfigure)
analysis_subfig.text(s='c', **letter_analysis_kwargs)
letter_subplot(analysis_subfig, 'c', **letter_analysis_kwargs, ref=pure_subfig)
# Plot pure-song envelope snippets:
plot_snippets(pure_axes[snip_specs['env']], t_full, pure_data['env'],
@@ -238,19 +229,9 @@ for data_path in data_paths:
# Plot pure-song SD ratios (ideal):
base_ind = np.argmin(pure_data['scales'])
# measure_env = pure_data['measure_env'] / pure_data['measure_env'][base_ind]
# measure_log = pure_data['measure_log'] / pure_data['measure_log'][base_ind]
measure_inv = pure_data['measure_inv'] / pure_data['measure_inv'][base_ind]
# analysis_ax.plot(pure_data['scales'], measure_env, c=colors['env'], lw=lw_analysis, ls='--')
# analysis_ax.plot(pure_data['scales'], measure_log, c=colors['log'], lw=lw_analysis, ls='--')
analysis_ax.plot(pure_data['scales'], measure_inv, c=colors['inv'], lw=lw_analysis, ls='--')
if indicate_unsaturated:
# Indicate influence of noise floor:
limit = noise_data['limit'] * unsaturated_proportion
thresh_ind = np.nonzero(noise_data['measure_inv'] <= limit)[0][-1]
analysis_ax.axvspan(0, noise_data['scales'][thresh_ind], **unsaturated_kwargs)
# Plot noise-song SD ratios (limited):
base_ind = np.argmin(noise_data['scales'])
measure_env = noise_data['measure_env'] / noise_data['measure_env'][base_ind]