From ee08f5a50dd6ec37e6660968dba46f7c9e5f5003 Mon Sep 17 00:00:00 2001 From: Jake Swann Date: Sat, 29 Mar 2025 14:10:14 -0400 Subject: [PATCH 1/5] allow UnitWaveformsWidget to use probeinterface plot_probe --- src/spikeinterface/widgets/unit_waveforms.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/spikeinterface/widgets/unit_waveforms.py b/src/spikeinterface/widgets/unit_waveforms.py index 02cc39014b..4b184d2e60 100644 --- a/src/spikeinterface/widgets/unit_waveforms.py +++ b/src/spikeinterface/widgets/unit_waveforms.py @@ -383,8 +383,14 @@ def plot_matplotlib(self, data_plot, **backend_kwargs): # plot channels if dp.plot_channels: - # TODO enhance this - ax.scatter(dp.channel_locations[:, 0], dp.channel_locations[:, 1], color="k") + from probeinterface.plotting import plot_probe + probe = dp.sorting_analyzer_or_templates.get_probe() + poly, poly_contour = plot_probe(probe, contacts_colors='w', add_to_axis=False) + ax.add_collection(poly) + + # Apply axis_equal setting + if dp.axis_equal: + ax.set_aspect('equal') if dp.same_axis and dp.plot_legend: if hasattr(self, "legend") and self.legend is not None: From aa4c79200b835de2792b48095b89a3ff1ab0440f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 29 Mar 2025 18:23:01 +0000 Subject: [PATCH 2/5] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/spikeinterface/widgets/unit_waveforms.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/spikeinterface/widgets/unit_waveforms.py b/src/spikeinterface/widgets/unit_waveforms.py index 4b184d2e60..9da5695ed3 100644 --- a/src/spikeinterface/widgets/unit_waveforms.py +++ b/src/spikeinterface/widgets/unit_waveforms.py @@ -384,13 +384,14 @@ def plot_matplotlib(self, data_plot, **backend_kwargs): # plot channels if dp.plot_channels: from probeinterface.plotting import plot_probe + probe = dp.sorting_analyzer_or_templates.get_probe() - poly, poly_contour = plot_probe(probe, contacts_colors='w', add_to_axis=False) + poly, poly_contour = plot_probe(probe, contacts_colors="w", add_to_axis=False) ax.add_collection(poly) # Apply axis_equal setting if dp.axis_equal: - ax.set_aspect('equal') + ax.set_aspect("equal") if dp.same_axis and dp.plot_legend: if hasattr(self, "legend") and self.legend is not None: From cab685773e74d5230ac96aaa4f6d055068ac3e20 Mon Sep 17 00:00:00 2001 From: Jake Swann Date: Tue, 1 Apr 2025 06:05:14 -0400 Subject: [PATCH 3/5] Update to use Sam's probeinterface refactoring suggestion --- src/spikeinterface/widgets/unit_waveforms.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/spikeinterface/widgets/unit_waveforms.py b/src/spikeinterface/widgets/unit_waveforms.py index 9da5695ed3..90f3caa449 100644 --- a/src/spikeinterface/widgets/unit_waveforms.py +++ b/src/spikeinterface/widgets/unit_waveforms.py @@ -383,11 +383,11 @@ def plot_matplotlib(self, data_plot, **backend_kwargs): # plot channels if dp.plot_channels: - from probeinterface.plotting import plot_probe + from probeinterface.plotting import create_probe_polygons probe = dp.sorting_analyzer_or_templates.get_probe() - poly, poly_contour = plot_probe(probe, contacts_colors="w", add_to_axis=False) - ax.add_collection(poly) + contacts, probe_outline = create_probe_polygons(probe, contacts_colors="w") + ax.add_collection(contacts) # Apply axis_equal setting if dp.axis_equal: From de47f6360809a881d815c0082e356fb74b08c640 Mon Sep 17 00:00:00 2001 From: Alessio Buccino Date: Mon, 5 May 2025 10:54:07 +0200 Subject: [PATCH 4/5] Use create_probe_polygon for probeinterface v>=0.2.27 --- src/spikeinterface/widgets/unit_waveforms.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/spikeinterface/widgets/unit_waveforms.py b/src/spikeinterface/widgets/unit_waveforms.py index 90f3caa449..61b113b765 100644 --- a/src/spikeinterface/widgets/unit_waveforms.py +++ b/src/spikeinterface/widgets/unit_waveforms.py @@ -1,7 +1,8 @@ from __future__ import annotations -import numpy as np +from packaging.version import parse from warnings import warn +import numpy as np from .base import BaseWidget, to_attr from .utils import get_unit_colors @@ -383,11 +384,16 @@ def plot_matplotlib(self, data_plot, **backend_kwargs): # plot channels if dp.plot_channels: - from probeinterface.plotting import create_probe_polygons + from probeinterface import __version__ as pi_version - probe = dp.sorting_analyzer_or_templates.get_probe() - contacts, probe_outline = create_probe_polygons(probe, contacts_colors="w") - ax.add_collection(contacts) + if parse(pi_version) >= parse("0.2.27"): + from probeinterface.plotting import create_probe_polygons + + probe = dp.sorting_analyzer_or_templates.get_probe() + contacts, _ = create_probe_polygons(probe, contacts_colors="w") + ax.add_collection(contacts) + else: + ax.scatter(dp.channel_locations[:, 0], dp.channel_locations[:, 1], color="k") # Apply axis_equal setting if dp.axis_equal: From 38801b669dcae3b6ab8b0f72356aa4602ea79ada Mon Sep 17 00:00:00 2001 From: Alessio Buccino Date: Mon, 5 May 2025 11:41:39 +0200 Subject: [PATCH 5/5] Update probeinterface version --- src/spikeinterface/widgets/unit_waveforms.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/spikeinterface/widgets/unit_waveforms.py b/src/spikeinterface/widgets/unit_waveforms.py index 61b113b765..660e6b2146 100644 --- a/src/spikeinterface/widgets/unit_waveforms.py +++ b/src/spikeinterface/widgets/unit_waveforms.py @@ -386,7 +386,7 @@ def plot_matplotlib(self, data_plot, **backend_kwargs): if dp.plot_channels: from probeinterface import __version__ as pi_version - if parse(pi_version) >= parse("0.2.27"): + if parse(pi_version) >= parse("0.2.28"): from probeinterface.plotting import create_probe_polygons probe = dp.sorting_analyzer_or_templates.get_probe()