pydata / xarray

N-D labeled arrays and datasets in Python
https://xarray.dev
Apache License 2.0
3.61k stars 1.08k forks source link

Scatter plot infers weird default values #7314

Closed huard closed 1 year ago

huard commented 1 year ago

What happened?

The xarray.plot.scatter method has changed its behavior in 2022.10.0. Code that used to work now doesn't.

The issue seems to be related to default values for the size and hue of markers. Instead of using s and c arguments, xarray tries to infer DataArrays to use, but picks non-sensical values.

What did you expect to happen?

A scatter plot with default size and color for markers. Now xarray has inferred that the size is somehow related to the j dimension, and the hue to bnds.

Note that the calculations required to draw the figure with those defaults take a huge amount of time. In the example below, I've subsetted the file so the code runs in a short time. Without subsetting, it runs forever.

Minimal Complete Verifiable Example

import xarray as xr
from matplotlib import pyplot as plt
url = "https://pavics.ouranos.ca/twitcher/ows/proxy/thredds/dodsC/birdhouse/testdata/xclim/cmip6/sic_SImon_CCCma-CanESM5_ssp245_r13i1p2f1_2020.nc"
ds = xr.open_dataset(url)
t = ds.isel(i=slice(0,10), j=slice(0,11))
t.plot.scatter(x="longitude", y="latitude", s=1)
plt.show()

MVCE confirmation

Relevant log output

No response

Anything else we need to know?

image

Environment

INSTALLED VERSIONS ------------------ commit: None python: 3.10.4 | packaged by conda-forge | (main, Mar 24 2022, 17:39:04) [GCC 10.3.0] python-bits: 64 OS: Linux OS-release: 5.4.0-131-generic machine: x86_64 processor: x86_64 byteorder: little LC_ALL: None LANG: en_CA.UTF-8 LOCALE: ('en_CA', 'UTF-8') libhdf5: 1.10.4 libnetcdf: 4.7.3 xarray: 2022.10.0 pandas: 1.4.3 numpy: 1.21.4 scipy: None netCDF4: 1.5.7 pydap: None h5netcdf: None h5py: None Nio: None zarr: None cftime: 1.5.1.1 nc_time_axis: None PseudoNetCDF: None rasterio: None cfgrib: None iris: None bottleneck: 1.3.5 dask: 2022.7.0 distributed: None matplotlib: 3.6.2 cartopy: None seaborn: None numbagg: None fsspec: 2022.5.0 cupy: None pint: 0.20.1 sparse: None flox: None numpy_groupies: None setuptools: 62.6.0 pip: 22.0.4 conda: None pytest: 7.1.2
headtr1ck commented 1 year ago

Possibly related conversation: https://github.com/pydata/xarray/pull/7277#issuecomment-1314068973

keewis commented 1 year ago

also related: #7268