Made fig_invariance_cross_species_thresh__appendix.pdf.

This commit is contained in:
j-hartling
2026-04-30 19:34:37 +02:00
parent ca23d42f5d
commit 9c5811d97c
20 changed files with 820 additions and 103 deletions

View File

@@ -112,17 +112,18 @@ def get_thresholds(data=None, path=None, perc=None, factor=None,
factors = data['factors'][inds]
return data['sds'] * factors, factors, data['percs'][inds, :]
def y_dist(ax, values, nbins=50, limits=None, log=False, cap=0.01, density=True,
line_kwargs={}, fill_kwargs={}):
def y_dist(ax, values, edges=None, nbins=50, limits=None, log=False, cap=0.01,
density=True, line_kwargs={}, fill_kwargs={}):
# Get distribution:
if limits is None:
limits = np.array([np.nanmin(values), np.nanmax(values)])
limits += np.array([-1.1, 1.1]) * (limits[1] - limits[0])
if log:
limits[0] = max(limits[0], cap)
edges = np.geomspace(*limits, nbins + 1)
else:
edges = np.linspace(*limits, nbins + 1)
if edges is None:
if limits is None:
limits = np.array([np.nanmin(values), np.nanmax(values)])
limits += np.array([-1.1, 1.1]) * (limits[1] - limits[0])
if log:
limits[0] = max(limits[0], cap)
edges = np.geomspace(*limits, nbins + 1)
else:
edges = np.linspace(*limits, nbins + 1)
centers = edges[:-1] + np.diff(edges) / 2
pdf, _ = np.histogram(values, bins=edges, density=density)
@@ -132,17 +133,18 @@ def y_dist(ax, values, nbins=50, limits=None, log=False, cap=0.01, density=True,
ax.set_xlim(0, pdf.max() * 1.05)
return pdf, centers, line_handle, fill_handle
def x_dist(ax, values, nbins=50, limits=None, log=False, cap=0.01, density=True,
line_kwargs={}, fill_kwargs={}):
def x_dist(ax, values, edges=None, nbins=50, limits=None, log=False, cap=0.01,
density=True, line_kwargs={}, fill_kwargs={}):
# Get distribution:
if limits is None:
limits = np.array([np.nanmin(values), np.nanmax(values)])
limits += np.array([-1.1, 1.1]) * (limits[1] - limits[0])
if log:
limits[0] = max(limits[0], cap)
edges = np.geomspace(*limits, nbins + 1)
else:
edges = np.linspace(*limits, nbins + 1)
if edges is None:
if limits is None:
limits = np.array([np.nanmin(values), np.nanmax(values)])
limits += np.array([-1.1, 1.1]) * (limits[1] - limits[0])
if log:
limits[0] = max(limits[0], cap)
edges = np.geomspace(*limits, nbins + 1)
else:
edges = np.linspace(*limits, nbins + 1)
centers = edges[:-1] + np.diff(edges) / 2
pdf, _ = np.histogram(values, bins=edges, density=density)