Finished (:D) fig_invariance_thresh_lp_single.pdf.

Added/modified few plot functions.
Cleaned up simulation/plotting scripts regarding Thresh-LP.
This commit is contained in:
j-hartling
2026-03-25 16:00:58 +01:00
parent dc4443aa17
commit 1a29b95782
17 changed files with 437 additions and 891 deletions

View File

@@ -1,7 +1,7 @@
import string
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.transforms import BboxTransformTo
from matplotlib.transforms import Bbox, BboxTransformTo, TransformedBbox
def hide_ticks(ax, side='bottom', ticks=True):
axis = 'x' if side in ['top', 'bottom'] else 'y'
@@ -33,6 +33,14 @@ def get_trans_artist(artist):
return BboxTransformTo(artist.get_tightbbox(renderer))
raise ValueError('Artist does not have a bounding box to use as transform.')
def shift_subplot(ax, dx=0, dy=0, ref=None):
if ref is not None:
transform = get_trans_artist(ref) + get_trans_artist(ax.figure).inverted()
dx, dy = transform.transform((dx, dy)) - transform.transform((0, 0))
pos = ax.get_position()
ax.set_position([pos.x0 + dx, pos.y0 + dy, pos.width, pos.height])
return None
def title_subplot(artist, title, x=0.5, y=1.0, xref=None, yref=None, ref=None,
ha='center', va='bottom', fontsize=16, fontweight='normal', **kwargs):
trans_artist = get_trans_artist(artist)
@@ -68,6 +76,10 @@ def letter_subplots(artists, labels=None, x=None, y=None, xref=None, yref=None,
return handles
def xlimits(time, ax=None, minval=None, maxval=None, pad=0.05):
if minval is not None and maxval is not None:
if ax is not None:
return ax.set_xlim([minval, maxval])
return [minval, maxval]
limits = [minval, maxval]
if minval is None:
limits[0] = time[0]
@@ -83,6 +95,10 @@ def xlimits(time, ax=None, minval=None, maxval=None, pad=0.05):
return limits
def ylimits(signal, ax=None, minval=None, maxval=None, pad=0.05):
if minval is not None and maxval is not None:
if ax is not None:
return ax.set_ylim([minval, maxval])
return [minval, maxval]
limits = [minval, maxval]
if minval is None:
limits[0] = signal.min()
@@ -267,3 +283,7 @@ def zoom_inset(ax, inset, handle, x0=None, x1=None, y0=None, y1=None, ref='x',
visibility = low_left, up_left, low_right, up_right
[l.set_visible(v) for l, v in zip(elements.connectors, visibility)]
return inset_handle, elements.rectangle, elements.connectors
def set_clip_box(artist, ax, bounds=[[0, -0.05], [1, 1.05]]):
artist.set_clip_box(TransformedBbox(Bbox(bounds), ax.transAxes))
return None