def share(self, base=None, keys=None, by=None, **kwargs):
        """
        Share the formatoptions of one plotter with all the others

        This method shares specified formatoptions from `base` with all the
        plotters in this instance.

        Parameters
        ----------
        base: None, Plotter, xarray.DataArray, InteractiveList, or list of them
            The source of the plotter that shares its formatoptions with the
            others. It can be None (then the first instance in this project
            is used), a :class:`~psyplot.plotter.Plotter` or any data object
            with a *psy* attribute. If `by` is not None, then it is expected
            that `base` is a list of data objects for each figure/axes
        %(Plotter.share.parameters.keys)s
        by: {'fig', 'figure', 'ax', 'axes'}
            Share the formatoptions only with the others on the same
            ``'figure'`` or the same ``'axes'``. In this case, base must either
            be ``None`` or a list of the types specified for `base`
        %(Plotter.share.parameters.no_keys|plotters)s

        See Also
        --------
        psyplot.plotter.share"""
        if by is not None:
            if base is not None:
                if hasattr(base, 'psy') or isinstance(base, Plotter):
                    base = [base]
                if by.lower() in ['ax', 'axes']:
                    bases = {ax: p[0] for ax, p in six.iteritems(
                        Project(base).axes)}
                elif by.lower() in ['fig', 'figure']:
                    bases = {fig: p[0] for fig, p in six.iteritems(
                        Project(base).figs)}
                else:
                    raise ValueError(
                        "*by* must be out of {'fig', 'figure', 'ax', 'axes'}. "
                        "Not %s" % (by, ))
            else:
                bases = {}
            projects = self.axes if by == 'axes' else self.figs
            for obj, p in projects.items():
                p.share(bases.get(obj), keys, **kwargs)
        else:
            plotters = self.plotters
            if not plotters:
                return
            if base is None:
                if len(plotters) == 1:
                    return
                base = plotters[0]
                plotters = plotters[1:]
            elif not isinstance(base, Plotter):
                base = getattr(getattr(base, 'psy', base), 'plotter', base)
            base.share(plotters, keys=keys, **kwargs)
def share ( self , base = None , keys = None , by = None , ** kwargs ) : if by is not None : if base is not None : if hasattr ( base , 'psy' ) or isinstance ( base , Plotter ) : base = [ base ] if by . lower ( ) in [ 'ax' , 'axes' ] : bases = { ax : p [ 0 ] for ax , p in six . iteritems ( Project ( base ) . axes ) } elif by . lower ( ) in [ 'fig' , 'figure' ] : bases = { fig : p [ 0 ] for fig , p in six . iteritems ( Project ( base ) . figs ) } else : raise ValueError ( "*by* must be out of {'fig', 'figure', 'ax', 'axes'}. " "Not %s" % ( by , ) ) else : bases = { } projects = self . axes if by == 'axes' else self . figs for obj , p in projects . items ( ) : p . share ( bases . get ( obj ) , keys , ** kwargs ) else : plotters = self . plotters if not plotters : return if base is None : if len ( plotters ) == 1 : return base = plotters [ 0 ] plotters = plotters [ 1 : ] elif not isinstance ( base , Plotter ) : base = getattr ( getattr ( base , 'psy' , base ) , 'plotter' , base ) base . share ( plotters , keys = keys , ** kwargs )
Share the formatoptions of one plotter with all the others

        This method shares specified formatoptions from `base` with all the
        plotters in this instance.

        Parameters
        ----------
        base: None, Plotter, xarray.DataArray, InteractiveList, or list of them
            The source of the plotter that shares its formatoptions with the
            others. It can be None (then the first instance in this project
            is used), a :class:`~psyplot.plotter.Plotter` or any data object
            with a *psy* attribute. If `by` is not None, then it is expected
            that `base` is a list of data objects for each figure/axes
        %(Plotter.share.parameters.keys)s
        by: {'fig', 'figure', 'ax', 'axes'}
            Share the formatoptions only with the others on the same
            ``'figure'`` or the same ``'axes'``. In this case, base must either
            be ``None`` or a list of the types specified for `base`
        %(Plotter.share.parameters.no_keys|plotters)s

        See Also
        --------
        psyplot.plotter.share