"
],
"text/plain": [
- ""
+ ""
]
},
"execution_count": 11,
@@ -416,7 +416,7 @@
"name": "stderr",
"output_type": "stream",
"text": [
- "C:\\Users\\mazo260d\\Documents\\GitHub\\biaplotter\\src\\biaplotter\\artists_base.py:452: UserWarning: Log normalization applied to color indices with min value 0.01. Values below 0.01 were set to 0.01.\n",
+ "C:\\Users\\mazo260d\\Documents\\GitHub\\biaplotter\\src\\biaplotter\\artists_base.py:462: UserWarning: Log normalization applied to color indices with min value 0.01. Values below 0.01 were set to 0.01.\n",
" warnings.warn(\n"
]
},
@@ -544,7 +544,7 @@
"name": "stderr",
"output_type": "stream",
"text": [
- "C:\\Users\\mazo260d\\Documents\\GitHub\\biaplotter\\src\\biaplotter\\artists_base.py:452: UserWarning: Log normalization applied to color indices with min value 1.0. Values below 0.01 were set to 0.01.\n",
+ "C:\\Users\\mazo260d\\Documents\\GitHub\\biaplotter\\src\\biaplotter\\artists_base.py:462: UserWarning: Log normalization applied to color indices with min value 1.0. Values below 0.01 were set to 0.01.\n",
" warnings.warn(\n"
]
},
@@ -574,7 +574,7 @@
"name": "stderr",
"output_type": "stream",
"text": [
- "C:\\Users\\mazo260d\\Documents\\GitHub\\biaplotter\\src\\biaplotter\\artists_base.py:452: UserWarning: Log normalization applied to color indices with min value 0.01. Values below 0.01 were set to 0.01.\n",
+ "C:\\Users\\mazo260d\\Documents\\GitHub\\biaplotter\\src\\biaplotter\\artists_base.py:462: UserWarning: Log normalization applied to color indices with min value 0.01. Values below 0.01 were set to 0.01.\n",
" warnings.warn(\n"
]
},
@@ -623,7 +623,7 @@
"
jet
under
bad
over
"
],
"text/plain": [
- ""
+ ""
]
},
"execution_count": 19,
@@ -817,7 +817,7 @@
"name": "stderr",
"output_type": "stream",
"text": [
- "C:\\Users\\mazo260d\\Documents\\GitHub\\biaplotter\\src\\biaplotter\\artists_base.py:452: UserWarning: Log normalization applied to color indices with min value 0.01. Values below 0.01 were set to 0.01.\n",
+ "C:\\Users\\mazo260d\\Documents\\GitHub\\biaplotter\\src\\biaplotter\\artists_base.py:462: UserWarning: Log normalization applied to color indices with min value 0.01. Values below 0.01 were set to 0.01.\n",
" warnings.warn(\n"
]
},
@@ -861,7 +861,7 @@
"outputs": [
{
"data": {
- "image/png": "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PPjgg2mH46yVSqV46KGHYu3atbFp06ZzKkIiPv87XC7/e9teU6ZMiV27dp1y3+zZs+OKK66IhQsX9ugIOXHiROzbty/uueeer/1cZR0i7bVt27bYvn173HjjjTFgwIDYt29fPProozF69OiyuBrSEQcPHoxJkybFiBEj4sknn4xjx461PjZ48OCEk3W+/fv3x/Hjx2P//v3R3NwcO3fujIiISy+9NPr37592uK9pwYIFMWvWrLjmmmti/Pjx8dRTT0VTU1PMnj079Wid6sSJE7F3797W2x988EHs3LkzBg4cGMOHD084WeebN29erF69OtavXx9VVVWt+33y+Xz07ds38XSda/HixTFt2rQYPnx4NDY2xurVq2PTpk3x8ssvpx6tU1VVVX1pj88X+xB72t6fn/3sZzF9+vQYMWJEHDp0KJYsWRK9evWKH/3oR1//yTP5LE43889//rM0efLk0sCBA0uVlZWlSy65pPTAAw+UDhw4kHq0TrdixYpSRJz26GlmzZp12tf56quvph6tUzz99NOl4cOHl3r37l0aP358aevWralH6nSvvvrqaf8MZ82alXq0Tnemf5crVqxIPVqn+/GPf1waMWJEqXfv3qWamprSlClTSq+88krqsbpET/347l133VUaMmRIqXfv3qVvfvObpbvuuqu0d+/eTnnust4jAgCUt/LZPAAA9DhCBABIRogAAMkIEQAgGSECACQjRACAZIQIAJCMEAEAkhEiAEAyQgQASEaIAADJCBEAIJn/A2GJpVgphAarAAAAAElFTkSuQmCC",
+ "image/png": "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9u3bF08//fRJ35YpFotRLBY7HxcKhZ4YDQBIpMtXRBYtWhS5XO6k2549e477nYMHD8bNN98cs2bNirlz537lsRsaGiKfz3duNTU1XT8jAKBsdPkekSNHjsSnn3560n3Gjh0bAwYMiIiIpqammDp1alx77bWxatWq6Nfvq9vnRFdEampq3CMCAGWkK/eIdPmtmerq6qiurj6lfQ8ePBjTpk2LiRMnxsqVK08aIRERFRUVUVFR0dWRAIAyldk9IgcPHoypU6fG6NGj48knn4wjR450/uyiiy7KalkAoIxkFiIbN26Mffv2xb59+2LkyJHH/awHPzEMAPRimX1897777otSqXTCDQAgwr81AwAkJEQAgGSECACQjBABAJIRIgBAMkIEAEhGiAAAyQgRACAZIQIAJCNEAIBkhAgAkIwQAQCSESIAQDJCBABIRogAAMkIEQAgGSECACQjRACAZIQIAJCMEAEAkhEiAEAyQgQASEaIAADJCBEAIBkhAgAkI0QAgGSECACQjBABAJIRIgBAMkIEAEhGiAAAyQgRACAZIQIAJCNEAIBkhAgAkIwQAQCSESIAQDJCBABIJtMQue2222LUqFExcODAuPjii+Oee+6JpqamLJcEAMpIpiEybdq0eO6552Lv3r3x/PPPx/79++POO+/MckkAoIzkSqVSqacW++tf/xozZ86MYrEY55577tfuXygUIp/PR3Nzc1RVVfXAhADAmerK6/c5PTRTHD16NFavXh1Tpkz5yggpFotRLBY7HxcKhZ4aDwBIIPObVRcuXBjnnXdeXHDBBXHgwIHYsGHDV+7b0NAQ+Xy+c6upqcl6PAAgoS6HyKJFiyKXy51027NnT+f+Dz/8cLz99tvx8ssvR//+/ePee++Nr3o3aPHixdHc3Ny5NTY2nv6ZAQC9XpfvETly5Eh8+umnJ91n7NixMWDAgC89/+GHH0ZNTU289tprMXny5K9dyz0iAFB+Mr1HpLq6Oqqrq09rsI6OjoiI4+4DAQDOXpndrLpt27bYvn17XH/99TF06NDYv39/PPLIIzFu3LhTuhoCAPR9md2sOnjw4PjLX/4S06dPj8suuyzmzJkT48ePjy1btkRFRUVWywIAZSSzKyLf+c534h//+McZHeOL21d8jBcAyscXr9unchtqj32PyOloaWmJiPAxXgAoQy0tLZHP50+6T49+s2pXdXR0RFNTU1RWVkYul+vS7xYKhaipqYnGxsY+/4kb59o3Ode+ybn2Tc71eKVSKVpaWmLEiBHRr9/J7wLp1VdE+vXrFyNHjjyjY1RVVfX5/yi+4Fz7JufaNznXvsm5/p+vuxLyhcy/WRUA4KsIEQAgmT4bIhUVFbFkyZKz4qPCzrVvcq59k3Ptm5zr6evVN6sCAH1bn70iAgD0fkIEAEhGiAAAyQgRACCZsyZEbrvtthg1alQMHDgwLr744rjnnnuiqakp9Vjd7oMPPog5c+bEmDFjYtCgQTFu3LhYsmRJtLW1pR6t2z3++OMxZcqUGDx4cJx//vmpx+l2y5Yti0suuSQGDhwY11xzTbz55pupR+p2W7dujVtvvTVGjBgRuVwu1q9fn3qkzDQ0NMTVV18dlZWVceGFF8bMmTNj7969qcfKxPLly2P8+PGdX3g1efLkeOGFF1KPlbmlS5dGLpeL+fPnpx6l2/3yl7+MXC533Hb55Zd3y7HPmhCZNm1aPPfcc7F37954/vnnY//+/XHnnXemHqvb7dmzJzo6OmLFihXx7rvvxm9+85t45pln4he/+EXq0bpdW1tbzJo1K+bNm5d6lG737LPPxoIFC2LJkiWxc+fOmDBhQtx0001x+PDh1KN1q9bW1pgwYUIsW7Ys9SiZ27JlS9TX18cbb7wRGzdujM8//zxuvPHGaG1tTT1atxs5cmQsXbo0duzYEW+99VbccMMNcfvtt8e7776berTMbN++PVasWBHjx49PPUpmvv3tb8dHH33Uub366qvdc+DSWWrDhg2lXC5XamtrSz1K5n71q1+VxowZk3qMzKxcubKUz+dTj9GtJk2aVKqvr+983N7eXhoxYkSpoaEh4VTZiojSunXrUo/RYw4fPlyKiNKWLVtSj9Ijhg4dWvrd736XeoxMtLS0lL71rW+VNm7cWPrhD39Yeuihh1KP1O2WLFlSmjBhQibHPmuuiPx/R48ejdWrV8eUKVPi3HPPTT1O5pqbm2PYsGGpx+AUtbW1xY4dO6K2trbzuX79+kVtbW28/vrrCSejOzU3N0dE9Pm/m+3t7bF27dpobW2NyZMnpx4nE/X19XHLLbcc93e2L/rXv/4VI0aMiLFjx8bdd98dBw4c6JbjnlUhsnDhwjjvvPPiggsuiAMHDsSGDRtSj5S5ffv2xdNPPx0//elPU4/CKfrkk0+ivb09hg8fftzzw4cPj0OHDiWaiu7U0dER8+fPj+uuuy6uvPLK1ONkYvfu3TFkyJCoqKiI+++/P9atWxdXXHFF6rG63dq1a2Pnzp3R0NCQepRMXXPNNbFq1ap48cUXY/ny5fH+++/H97///WhpaTnjY5d1iCxatOhLN8/897Znz57O/R9++OF4++234+WXX47+/fvHvffeG6Uy+WLZrp5rRMTBgwfj5ptvjlmzZsXcuXMTTd41p3OeUG7q6+vjnXfeibVr16YeJTOXXXZZ7Nq1K7Zt2xbz5s2Lurq6eO+991KP1a0aGxvjoYceitWrV8fAgQNTj5OpGTNmxKxZs2L8+PFx0003xd///vf47LPP4rnnnjvjY5f1V7wfOXIkPv3005PuM3bs2BgwYMCXnv/www+jpqYmXnvttbK4XNjVc21qaoqpU6fGtddeG6tWrYp+/cqjOU/nz3TVqlUxf/78+OyzzzKerme0tbXF4MGD489//nPMnDmz8/m6urr47LPP+uyVvFwuF+vWrTvunPuiBx54IDZs2BBbt26NMWPGpB6nx9TW1sa4ceNixYoVqUfpNuvXr4877rgj+vfv3/lce3t75HK56NevXxSLxeN+1tdcffXVUVtbe8ZXg87ppnmSqK6ujurq6tP63Y6OjoiIKBaL3TlSZrpyrgcPHoxp06bFxIkTY+XKlWUTIRFn9mfaVwwYMCAmTpwYmzZt6nxR7ujoiE2bNsUDDzyQdjhOW6lUigcffDDWrVsXmzdvPqsiJOJ//xsul//fnqrp06fH7t27j3tu9uzZcfnll8fChQv7dIQcO3Ys9u/fH/fcc88ZH6usQ+RUbdu2LbZv3x7XX399DB06NPbv3x+PPPJIjBs3riyuhnTFwYMHY+rUqTF69Oh48skn48iRI50/u+iiixJO1v0OHDgQR48ejQMHDkR7e3vs2rUrIiIuvfTSGDJkSNrhztCCBQuirq4urrrqqpg0aVI89dRT0draGrNnz049Wrc6duxY7Nu3r/Px+++/H7t27Yphw4bFqFGjEk7W/err62PNmjWxYcOGqKys7LzfJ5/Px6BBgxJP170WL14cM2bMiFGjRkVLS0usWbMmNm/eHC+99FLq0bpVZWXll+7x+eI+xL5278/Pf/7zuPXWW2P06NHR1NQUS5Ysif79+8ePf/zjMz94Jp/F6WX++c9/lqZNm1YaNmxYqaKionTJJZeU7r///tKHH36YerRut3LlylJEnHDra+rq6k54nq+88krq0brF008/XRo1alRpwIABpUmTJpXeeOON1CN1u1deeeWEf4Z1dXWpR+t2X/X3cuXKlalH63Y/+clPSqNHjy4NGDCgVF1dXZo+fXrp5ZdfTj1Wj+irH9+96667ShdffHFpwIABpW9+85ulu+66q7Rv375uOXZZ3yMCAJS38rl5AADoc4QIAJCMEAEAkhEiAEAyQgQASEaIAADJCBEAIBkhAgAkI0QAgGSECACQjBABAJIRIgBAMv8DjSRurkyktRAAAAAASUVORK5CYII=",
"text/plain": [
""
]
diff --git a/src/biaplotter/__init__.py b/src/biaplotter/__init__.py
index ef186d1..a16c0bd 100644
--- a/src/biaplotter/__init__.py
+++ b/src/biaplotter/__init__.py
@@ -1,4 +1,4 @@
-__version__ = "0.4.0"
+__version__ = "0.4.1"
from .artists import Histogram2D, Scatter
from .colormap import BiaColormap
from .plotter import CanvasWidget
diff --git a/src/biaplotter/artists.py b/src/biaplotter/artists.py
index 40546fb..0301010 100644
--- a/src/biaplotter/artists.py
+++ b/src/biaplotter/artists.py
@@ -2,6 +2,7 @@
from typing import List, Tuple, Union
import matplotlib.pyplot as plt
+import matplotlib.patches as mpatches
import numpy as np
from matplotlib.colors import Colormap, Normalize
from nap_plot_tools.cmap import (cat10_mod_cmap,
@@ -383,6 +384,7 @@ def __init__(
self._bin_alpha = None
self._bins = bins
self._highlighted = None # Initialize highlight mask
+ self._highlighted_bin_patches = []
self._histogram_colormap = BiaColormap(histogram_colormap)
self._histogram_interpolation = "nearest"
self._overlay_interpolation = "nearest"
@@ -747,11 +749,6 @@ def _get_normalization(
def _highlight_data(self, boolean_mask: np.ndarray):
"""Highlight data points based on the provided indices."""
if boolean_mask is None or len(boolean_mask) == 0:
- # Remove previous highlighted patches if they exist
- if hasattr(self, "_highlighted_bin_patches"):
- for patch in self._highlighted_bin_patches:
- patch.remove()
- self._highlighted_bin_patches = []
# Reset all bins to fully opaque
self.bin_alpha = np.ones_like(self._histogram[0])
self._highlighted = None
@@ -777,15 +774,6 @@ def _highlight_data(self, boolean_mask: np.ndarray):
self.bin_alpha = alphas
# Draw rectangle patches around highlighted bins
- import matplotlib.patches as mpatches
-
- # Remove previous rectangle patches if they exist
- if hasattr(self, "_highlighted_bin_patches"):
- for patch in self._highlighted_bin_patches:
- patch.remove()
- self._highlighted_bin_patches = []
-
- # Add new rectangle patches for currently highlighted bins
for bin_x in range(highlighted_bins.shape[0]):
for bin_y in range(highlighted_bins.shape[1]):
if highlighted_bins[bin_x, bin_y]:
diff --git a/src/biaplotter/artists_base.py b/src/biaplotter/artists_base.py
index 61291f9..ba5287e 100644
--- a/src/biaplotter/artists_base.py
+++ b/src/biaplotter/artists_base.py
@@ -141,6 +141,7 @@ def _remove_artists(self, keys: List[str] = None):
if hasattr(self, "_highlighted_bin_patches"):
for patch in self._highlighted_bin_patches:
patch.remove()
+ self._highlighted_bin_patches = []
for artist in self._mpl_artists.values():
artist.remove()
self._mpl_artists = {}
@@ -152,6 +153,7 @@ def _remove_artists(self, keys: List[str] = None):
if hasattr(self, "_highlighted_bin_patches"):
for patch in self._highlighted_bin_patches:
patch.remove()
+ self._highlighted_bin_patches = []
self._mpl_artists[key].remove()
del self._mpl_artists[key]
@@ -241,6 +243,9 @@ def visible(self, value: bool):
"""Sets the visibility of the artists."""
self._visible = value
[a.set_visible(value) for a in self._mpl_artists.values()]
+ if hasattr(self, "_highlighted_bin_patches"):
+ for patch in self._highlighted_bin_patches:
+ patch.set_visible(value)
self.draw()
@property
diff --git a/src/biaplotter/plotter.py b/src/biaplotter/plotter.py
index a8dcef8..563d571 100644
--- a/src/biaplotter/plotter.py
+++ b/src/biaplotter/plotter.py
@@ -121,6 +121,14 @@ def hideEvent(self, event):
self.napari_viewer.bind_key("Escape", None, overwrite=True)
super().hideEvent(event)
+ def showEvent(self, event):
+ """Handles the show event of the widget.
+
+ Re-binds Escape to clear selections and highlights.
+ """
+ super().showEvent(event)
+ self.napari_viewer.bind_key("Escape", self._on_escape, overwrite=True)
+
def _initialize_mpl_toolbar(self):
"""
Replaces the default matplotlib toolbar with a custom one that emits signals.