diff --git a/doc/whats-new.rst b/doc/whats-new.rst index 472cd47adf1..d275df4ef2c 100644 --- a/doc/whats-new.rst +++ b/doc/whats-new.rst @@ -21,6 +21,8 @@ v0.10.1 (unreleased) Enhancements ~~~~~~~~~~~~ +- Facet grid plots now accept `cbar_ax` and `cbar_kwargs` arguments. + Bug fixes ~~~~~~~~~ diff --git a/xarray/plot/facetgrid.py b/xarray/plot/facetgrid.py index 8e5ec80d6e6..74b193cd20b 100644 --- a/xarray/plot/facetgrid.py +++ b/xarray/plot/facetgrid.py @@ -236,7 +236,8 @@ def map_dataarray(self, func, x, y, **kwargs): # Order is important func_kwargs = kwargs.copy() func_kwargs.update(cmap_params) - func_kwargs.update({'add_colorbar': False, 'add_labels': False}) + func_kwargs.update({'cbar_ax': None, 'cbar_kwargs': None, + 'add_colorbar': False, 'add_labels': False}) # Get x, y labels for the first subplot x, y = _infer_xy_labels(darray=self.data.loc[self.name_dicts.flat[0]], @@ -253,7 +254,7 @@ def map_dataarray(self, func, x, y, **kwargs): self._finalize_grid(x, y) if kwargs.get('add_colorbar', True): - self.add_colorbar() + self.add_colorbar(**kwargs) return self @@ -271,13 +272,22 @@ def add_colorbar(self, **kwargs): """Draw a colorbar """ kwargs = kwargs.copy() + cbar_kwargs = {} + cbar_ax = list(self.axes.flat) + + if kwargs.get('cbar_kwargs', False): + cbar_kwargs = kwargs.pop('cbar_kwargs') + print(cbar_kwargs) + if kwargs.get('cbar_ax', False): + cbar_ax = kwargs.pop('cbar_ax') + if self._cmap_extend is not None: kwargs.setdefault('extend', self._cmap_extend) if getattr(self.data, 'name', None) is not None: kwargs.setdefault('label', self.data.name) self.cbar = self.fig.colorbar(self._mappables[-1], - ax=list(self.axes.flat), - **kwargs) + ax=cbar_ax, + **cbar_kwargs) return self def set_axis_labels(self, x_var=None, y_var=None):