From 109418e4557e3b84cfe74602c6329c18047fb19f Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Mon, 15 Jan 2024 19:12:59 +0000 Subject: [PATCH 1/5] Use 101 bin edges for histograms of float data --- src/napari_matplotlib/histogram.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/napari_matplotlib/histogram.py b/src/napari_matplotlib/histogram.py index 073620d..8269d98 100644 --- a/src/napari_matplotlib/histogram.py +++ b/src/napari_matplotlib/histogram.py @@ -26,8 +26,9 @@ def _get_bins(data: npt.NDArray[Any]) -> npt.NDArray[Any]: step = np.ceil(np.ptp(data) / 100) return np.arange(np.min(data), np.max(data) + step, step) else: - # For other data types, just have 128 evenly spaced bins - return np.linspace(np.min(data), np.max(data), 100) + # For other data types, just have 100 evenly spaced bins + # (and 101 bin edges) + return np.linspace(np.min(data), np.max(data), 101) class HistogramWidget(SingleAxesWidget): From 101b4e5fe0e473f7440aa32879011d71036c5379 Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Mon, 15 Jan 2024 19:16:08 +0000 Subject: [PATCH 2/5] update baseline images for histogram tests with float data --- .../test_feature_histogram_points.png | Bin 17145 -> 17200 bytes .../test_feature_histogram_vectors.png | Bin 17259 -> 17725 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/napari_matplotlib/tests/baseline/test_feature_histogram_points.png b/src/napari_matplotlib/tests/baseline/test_feature_histogram_points.png index be8770ee9229ae198086224cd76da3ce6c4df007..88a28f79c8b07efca0319bd565bc306ba4a35c37 100644 GIT binary patch literal 17200 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 literal 17145 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 Xw9+@;gCb23@CP$6yHtMh`u+a_hA-RY diff --git a/src/napari_matplotlib/tests/baseline/test_feature_histogram_vectors.png b/src/napari_matplotlib/tests/baseline/test_feature_histogram_vectors.png index 119c28e1269af57f8d8cff5c5da2e84a1ac306da..857d93449651193b77014826950c8a3d61e608d4 100644 GIT binary patch literal 17725 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 R5yqw3>iV}!ZrMEj{{T~dlZgNT literal 17259 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 H4p09FU@Qgk From 34c9e2c3226370717c2f86703a21154dd56d8607 Mon Sep 17 00:00:00 2001 From: David Stansby Date: Tue, 23 Jan 2024 18:33:34 +0000 Subject: [PATCH 3/5] Fix HistogramWidget for multiscale data --- src/napari_matplotlib/histogram.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/napari_matplotlib/histogram.py b/src/napari_matplotlib/histogram.py index 073620d..ffbd1ff 100644 --- a/src/napari_matplotlib/histogram.py +++ b/src/napari_matplotlib/histogram.py @@ -4,6 +4,8 @@ import numpy as np import numpy.typing as npt from matplotlib.container import BarContainer +from napari.layers import Image +from napari.layers._multiscale_data import MultiScaleData from qtpy.QtWidgets import ( QComboBox, QLabel, @@ -67,14 +69,18 @@ def draw(self) -> None: """ Clear the axes and histogram the currently selected layer/slice. """ - layer = self.layers[0] + layer: Image = self.layers[0] + data = layer.data - if layer.data.ndim - layer.rgb == 3: + if isinstance(layer.data, MultiScaleData): + data = data[layer.data_level] + + if layer.ndim - layer.rgb == 3: # 3D data, can be single channel or RGB - data = layer.data[self.current_z] + # Slice in z dimension + data = data[self.current_z] self.axes.set_title(f"z={self.current_z}") - else: - data = layer.data + # Read data into memory if it's a dask array data = np.asarray(data) From 31c8fac9bacb87c34a6dffa46781ac7849be1c70 Mon Sep 17 00:00:00 2001 From: David Stansby Date: Tue, 23 Jan 2024 18:39:17 +0000 Subject: [PATCH 4/5] Fix pandas deprecation warning --- pyproject.toml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 22ff307..ba9f9e6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,14 +6,15 @@ build-backend = "setuptools.build_meta" write_to = "src/napari_matplotlib/_version.py" [tool.pytest.ini_options] -qt_api = "pyqt6" -addopts = "--mpl --mpl-baseline-relative" filterwarnings = [ "error", + "ignore:(?s).*Pyarrow will become a required dependency of pandas", # Coming from vispy "ignore:distutils Version classes are deprecated:DeprecationWarning", "ignore:`np.bool8` is a deprecated alias for `np.bool_`:DeprecationWarning", ] +qt_api = "pyqt6" +addopts = "--mpl --mpl-baseline-relative" [tool.black] line-length = 79 From c3c4dbd2774da51fbb9a8a072363201129bce3df Mon Sep 17 00:00:00 2001 From: David Stansby Date: Tue, 23 Jan 2024 18:47:48 +0000 Subject: [PATCH 5/5] Add 2.0.1 changelog --- docs/changelog.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/changelog.rst b/docs/changelog.rst index 6395e9c..255982a 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -1,5 +1,13 @@ Changelog ========= +2.0.1 +----- +Bug fixes +~~~~~~~~~ +- Fixed using the ``HistogramWidget`` with layers containing multiscale data. +- Make sure ``HistogramWidget`` uses 100 bins (not 99) when floating point data is + selected. + 2.0.0 ----- Changes to custom theming pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy