Description
Code Sample, a copy-pastable example if possible
I just stumbled on some weird behaviour, possibly a bug. When plotting with the contourf
method, xarray ignores the extend
value passed to cbar_kwargs
import numpy as np
import xarray as xr
%matplotlib inline
test_data = np.random.rand(10, 10)
da = xr.DataArray(test_data)
h = da.plot.contourf(vmax=0.5, cbar_kwargs={"extend": "neither"})
print(h.colorbar.extend)
When doing a similar plot with matplotlib this happens
# matplotlib example
import matplotlib.pyplot as plt
ha = plt.contourf(test_data, vmax=0.3)
cb = plt.colorbar(ha, extend='neither')
Is xarray adjusting the colorbar to the vmin
and vmax
inputs but not carrying the cbar_kwargs
for that step?
This makes it especially hard to produce movies with (e.g. xmovie) because the colorbar flickers
.
If someone could point me to the right location in the code and tests, I would be happy to put together a PR.
Output of xr.show_versions()
xarray: 0.12.0
pandas: 0.24.2
numpy: 1.16.2
scipy: 1.2.1
netCDF4: 1.5.0.1
pydap: None
h5netcdf: None
h5py: None
Nio: None
zarr: 2.3.1
cftime: 1.0.3.4
nc_time_axis: 1.2.0
PseudonetCDF: None
rasterio: None
cfgrib: None
iris: None
bottleneck: None
dask: 1.1.5
distributed: 1.26.1
matplotlib: 3.0.3
cartopy: 0.17.0
seaborn: 0.9.0
setuptools: 40.8.0
pip: 19.0.3
conda: None
pytest: 4.4.2
IPython: 7.1.1
sphinx: None