Skip to content

Commit c4be01e

Browse files
authored
Merge pull request #281 from FrancescoNegri/refactoring/get-auto-lims
Move get_auto_lims function to utils
2 parents 274b570 + de8a2cf commit c4be01e

File tree

2 files changed

+38
-36
lines changed

2 files changed

+38
-36
lines changed

src/probeinterface/plotting.py

Lines changed: 2 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import numpy as np
1010
from matplotlib import path as mpl_path
1111

12+
from .utils import get_auto_lims
13+
1214

1315
def plot_probe(
1416
probe,
@@ -285,39 +287,3 @@ def on_release(event):
285287
t.remove()
286288
del ax.contact_text
287289
event.canvas.draw()
288-
289-
290-
def get_auto_lims(probe, margin=40):
291-
positions = probe.contact_positions
292-
planar_contour = probe.probe_planar_contour
293-
294-
xlims = np.min(positions[:, 0]), np.max(positions[:, 0])
295-
ylims = np.min(positions[:, 1]), np.max(positions[:, 1])
296-
zlims = None
297-
298-
if probe.ndim == 3:
299-
zlims = np.min(positions[:, 2]), np.max(positions[:, 2])
300-
301-
if planar_contour is not None:
302-
xlims2 = np.min(planar_contour[:, 0]), np.max(planar_contour[:, 0])
303-
xlims = min(xlims[0], xlims2[0]), max(xlims[1], xlims2[1])
304-
305-
ylims2 = np.min(planar_contour[:, 1]), np.max(planar_contour[:, 1])
306-
ylims = min(ylims[0], ylims2[0]), max(ylims[1], ylims2[1])
307-
308-
if probe.ndim == 3:
309-
zlims2 = np.min(planar_contour[:, 2]), np.max(planar_contour[:, 2])
310-
zlims = min(zlims[0], zlims2[0]), max(zlims[1], zlims2[1])
311-
312-
xlims = xlims[0] - margin, xlims[1] + margin
313-
ylims = ylims[0] - margin, ylims[1] + margin
314-
315-
if probe.ndim == 3:
316-
zlims = zlims[0] - margin, zlims[1] + margin
317-
318-
# to keep equal aspect in 3d
319-
# all axes have the same limits
320-
lims = min(xlims[0], ylims[0], zlims[0]), max(xlims[1], ylims[1], zlims[1])
321-
xlims, ylims, zlims = lims, lims, lims
322-
323-
return xlims, ylims, zlims

src/probeinterface/utils.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,3 +137,39 @@ def generate_unique_ids(min: int, max: int, n: int, trials: int = 20) -> np.arra
137137
if len(np.unique(ids)) != len(ids):
138138
raise ValueError(f"Can not generate {n} unique ids between {min} " f"and {max} in {trials} trials")
139139
return ids
140+
141+
142+
def get_auto_lims(probe, margin=40):
143+
positions = probe.contact_positions
144+
planar_contour = probe.probe_planar_contour
145+
146+
xlims = np.min(positions[:, 0]), np.max(positions[:, 0])
147+
ylims = np.min(positions[:, 1]), np.max(positions[:, 1])
148+
zlims = None
149+
150+
if probe.ndim == 3:
151+
zlims = np.min(positions[:, 2]), np.max(positions[:, 2])
152+
153+
if planar_contour is not None:
154+
xlims2 = np.min(planar_contour[:, 0]), np.max(planar_contour[:, 0])
155+
xlims = min(xlims[0], xlims2[0]), max(xlims[1], xlims2[1])
156+
157+
ylims2 = np.min(planar_contour[:, 1]), np.max(planar_contour[:, 1])
158+
ylims = min(ylims[0], ylims2[0]), max(ylims[1], ylims2[1])
159+
160+
if probe.ndim == 3:
161+
zlims2 = np.min(planar_contour[:, 2]), np.max(planar_contour[:, 2])
162+
zlims = min(zlims[0], zlims2[0]), max(zlims[1], zlims2[1])
163+
164+
xlims = xlims[0] - margin, xlims[1] + margin
165+
ylims = ylims[0] - margin, ylims[1] + margin
166+
167+
if probe.ndim == 3:
168+
zlims = zlims[0] - margin, zlims[1] + margin
169+
170+
# to keep equal aspect in 3d
171+
# all axes have the same limits
172+
lims = min(xlims[0], ylims[0], zlims[0]), max(xlims[1], ylims[1], zlims[1])
173+
xlims, ylims, zlims = lims, lims, lims
174+
175+
return xlims, ylims, zlims

0 commit comments

Comments
 (0)