From 679a39ff744da1180c35679d8aa715b103c36fda Mon Sep 17 00:00:00 2001 From: "Joy M. Monteiro" Date: Wed, 22 Nov 2017 05:36:11 +0100 Subject: [PATCH 1/2] added cbar_ax and cbar_kwargs to facetgrid --- xarray/plot/facetgrid.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/xarray/plot/facetgrid.py b/xarray/plot/facetgrid.py index 8e5ec80d6e6..7fbb317ebd0 100644 --- a/xarray/plot/facetgrid.py +++ b/xarray/plot/facetgrid.py @@ -236,7 +236,7 @@ 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 +253,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 +271,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): From ee4ea88becdbe913a04c13ce21dc1c817271ceb8 Mon Sep 17 00:00:00 2001 From: "Joy M. Monteiro" Date: Wed, 22 Nov 2017 05:46:19 +0100 Subject: [PATCH 2/2] fixed flake8 issues and added to whats-new.rst --- doc/whats-new.rst | 2 ++ xarray/plot/facetgrid.py | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) 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 7fbb317ebd0..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({'cbar_ax': None, 'cbar_kwargs': None, '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]],