From 1efca4ca13b4b5abb2094819dd589e1d63ac54f3 Mon Sep 17 00:00:00 2001 From: ShinoKana Date: Thu, 22 Oct 2026 15:03:53 +0900 Subject: [PATCH 1/2] Remove the deprecated hue_style argument of the 1D plot functions It has raised a FutureWarning since v2023.07.0 (#7925) and has had no effect since v2022.10. Quiver and streamplot keep their hue_style. Co-authored-by: Claude --- doc/whats-new.rst | 6 ++++++ xarray/plot/accessor.py | 12 ------------ xarray/plot/dataarray_plot.py | 21 --------------------- xarray/plot/dataset_plot.py | 8 -------- 4 files changed, 6 insertions(+), 41 deletions(-) diff --git a/doc/whats-new.rst b/doc/whats-new.rst index 3abeff78a77..65678f1050f 100644 --- a/doc/whats-new.rst +++ b/doc/whats-new.rst @@ -128,6 +128,12 @@ Breaking Changes deprecated since v0.16.1, have been removed. Pass them in ``dask_gufunc_kwargs`` instead (:issue:`11721`, :pull:`11755`). By `Daisy DAI `_. +- The ``hue_style`` argument of the 1D plot functions (``lines`` and + ``scatter`` for :py:class:`DataArray` and :py:class:`Dataset`), deprecated + since v2023.07.0, has been removed. Convert numbers to strings for a discrete + hue, and use ``add_legend`` or ``add_colorbar`` to choose the guide + (:issue:`11721`). + By `Daisy DAI `_. Deprecations diff --git a/xarray/plot/accessor.py b/xarray/plot/accessor.py index 8ec1131d586..13e73b4b4ed 100644 --- a/xarray/plot/accessor.py +++ b/xarray/plot/accessor.py @@ -143,7 +143,6 @@ def lines( # type: ignore[misc,unused-ignore] # None is hashable :( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, @@ -183,7 +182,6 @@ def lines( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, @@ -223,7 +221,6 @@ def lines( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, @@ -307,7 +304,6 @@ def scatter( # type: ignore[misc,unused-ignore] # None is hashable :( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, @@ -347,7 +343,6 @@ def scatter( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, @@ -387,7 +382,6 @@ def scatter( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, @@ -1055,7 +1049,6 @@ def lines( # type: ignore[misc,unused-ignore] # None is hashable :( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, @@ -1095,7 +1088,6 @@ def lines( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, @@ -1135,7 +1127,6 @@ def lines( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, @@ -1179,7 +1170,6 @@ def scatter( # type: ignore[misc,unused-ignore] # None is hashable :( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, @@ -1219,7 +1209,6 @@ def scatter( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, @@ -1259,7 +1248,6 @@ def scatter( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, diff --git a/xarray/plot/dataarray_plot.py b/xarray/plot/dataarray_plot.py index c875980852e..9ba0db0c265 100644 --- a/xarray/plot/dataarray_plot.py +++ b/xarray/plot/dataarray_plot.py @@ -52,7 +52,6 @@ from xarray.core.types import ( AspectOptions, ExtendOptions, - HueStyleOptions, ScaleOptions, T_DataArray, ) @@ -886,7 +885,6 @@ def newplotfunc( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, row: Hashable | None = None, @@ -971,19 +969,6 @@ def newplotfunc( del msg del args - if hue_style is not None: - # TODO: Not used since 2022.10. Deprecated since 2023.07. - warnings.warn( - ( - "hue_style is no longer used for plot1d plots " - "and the argument will eventually be removed. " - "Convert numbers to string for a discrete hue " - "and use add_legend or add_colorbar to control which guide to display." - ), - FutureWarning, - stacklevel=2, - ) - _is_facetgrid = kwargs.pop("_is_facetgrid", False) if plotfunc.__name__ == "scatter": @@ -1163,7 +1148,6 @@ def lines( # type: ignore[misc,unused-ignore] # None is hashable :( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, @@ -1204,7 +1188,6 @@ def lines( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, @@ -1245,7 +1228,6 @@ def lines( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, @@ -1333,7 +1315,6 @@ def scatter( # type: ignore[misc,unused-ignore] # None is hashable :( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, @@ -1374,7 +1355,6 @@ def scatter( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, @@ -1415,7 +1395,6 @@ def scatter( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, diff --git a/xarray/plot/dataset_plot.py b/xarray/plot/dataset_plot.py index fd2d2416b6d..fd416668413 100644 --- a/xarray/plot/dataset_plot.py +++ b/xarray/plot/dataset_plot.py @@ -758,7 +758,6 @@ def scatter( # type: ignore[misc,unused-ignore] # None is hashable :( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, @@ -799,7 +798,6 @@ def scatter( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, @@ -840,7 +838,6 @@ def scatter( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, @@ -881,7 +878,6 @@ def scatter( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, @@ -929,7 +925,6 @@ def lines( # type: ignore[misc,unused-ignore] # None is hashable :( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, @@ -970,7 +965,6 @@ def lines( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, @@ -1011,7 +1005,6 @@ def lines( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, @@ -1052,7 +1045,6 @@ def lines( y: Hashable | None = None, z: Hashable | None = None, hue: Hashable | None = None, - hue_style: HueStyleOptions = None, markersize: Hashable | None = None, linewidth: Hashable | None = None, figsize: Iterable[float] | None = None, From 7767566290ab0515709b0973d0f687ea7116992a Mon Sep 17 00:00:00 2001 From: ShinoKana Date: Thu, 22 Oct 2026 18:36:10 +0900 Subject: [PATCH 2/2] Add PR number to whats-new Co-authored-by: Claude --- doc/whats-new.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/whats-new.rst b/doc/whats-new.rst index 65678f1050f..8fcee9a1425 100644 --- a/doc/whats-new.rst +++ b/doc/whats-new.rst @@ -132,7 +132,7 @@ Breaking Changes ``scatter`` for :py:class:`DataArray` and :py:class:`Dataset`), deprecated since v2023.07.0, has been removed. Convert numbers to strings for a discrete hue, and use ``add_legend`` or ``add_colorbar`` to choose the guide - (:issue:`11721`). + (:issue:`11721`, :pull:`11787`). By `Daisy DAI `_.