html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,performed_via_github_app,issue https://github.com/pydata/xarray/issues/4061#issuecomment-977165503,https://api.github.com/repos/pydata/xarray/issues/4061,977165503,IC_kwDOAMm_X846Ply_,33153877,2021-11-23T21:01:17Z,2021-11-23T21:01:17Z,NONE,"I also have an issue where xarray doesn't produce the correct plot when normalizing with BoundaryNorm: ```python import xarray as xr import matplotlib.pyplot as plt import matplotlib.colors as colors from cmcrameri import cm airtemps = xr.tutorial.open_dataset(""air_temperature"") # Convert to Celsius. air = airtemps.air - 273.15 air.attrs = airtemps.air.attrs air.attrs[""units""] = ""deg C"" # Select a timestep. air2d = air.isel(time=500) # Plotting discrete bounds with matplotlib works fine. bounds = [x for x in range(-30, 31, 10)] norm = colors.BoundaryNorm(boundaries=bounds, extend='both', ncolors=cm.vik.N) fig, ax = plt.subplots() cs = ax.pcolormesh(air2d.lon, air2d.lat, air2d, cmap=cm.vik, norm=norm) fig.colorbar(cs) plt.show() # Plotting with xarray doesn't work. fig, ax = plt.subplots() air2d.plot.pcolormesh(ax=ax, norm=norm) plt.show() ``` First one is from matplotlib: ![matplotlib](https://user-images.githubusercontent.com/33153877/143118949-f2a982ff-3fb1-4f14-8d8d-982ea8ead575.png) Second one is from xarray: ![xarray](https://user-images.githubusercontent.com/33153877/143118956-5a73a03e-7535-4d22-aaf8-987c4496e539.png) I also get the following traceback after running the script: ```bash Traceback (most recent call last): File ""/home/michael/miniconda3/envs/testing_xarray/lib/python3.10/site-packages/matplotlib/cbook/__init__.py"", line 287, in process func(*args, **kwargs) File ""/home/michael/miniconda3/envs/testing_xarray/lib/python3.10/site-packages/matplotlib/backend_bases.py"", line 3056, in mouse_move s = self._mouse_event_to_message(event) File ""/home/michael/miniconda3/envs/testing_xarray/lib/python3.10/site-packages/matplotlib/backend_bases.py"", line 3048, in _mouse_event_to_message data_str = a.format_cursor_data(data).rstrip() File ""/home/michael/miniconda3/envs/testing_xarray/lib/python3.10/site-packages/matplotlib/artist.py"", line 1282, in format_cursor_data neighbors = self.norm.inverse( File ""/home/michael/miniconda3/envs/testing_xarray/lib/python3.10/site-packages/matplotlib/colors.py"", line 1832, in inverse raise ValueError(""BoundaryNorm is not invertible"") ValueError: BoundaryNorm is not invertible ```
Output of xr.show_versions() INSTALLED VERSIONS ------------------ commit: None python: 3.10.0 | packaged by conda-forge | (default, Nov 20 2021, 02:25:18) [GCC 9.4.0] python-bits: 64 OS: Linux OS-release: 5.14.18-300.fc35.x86_64 machine: x86_64 processor: x86_64 byteorder: little LC_ALL: None LANG: en_GB.UTF-8 LOCALE: ('en_GB', 'UTF-8') libhdf5: 1.12.1 libnetcdf: 4.8.1 xarray: 0.20.1 pandas: 1.3.4 numpy: 1.21.4 scipy: 1.7.2 netCDF4: 1.5.8 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: None dask: None distributed: None matplotlib: 3.5.0 cartopy: 0.20.1 seaborn: None numbagg: None fsspec: None cupy: None pint: None sparse: None setuptools: 59.2.0 pip: 21.3.1 conda: None pytest: None IPython: 7.29.0 sphinx: None
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,618141254