示例#1
0
    def _show(self, *args, **kwargs):
        """ show() and patchshow()** wrap their respective Canvas methods, 
        so any valid arguments (like colormaps, grids etc...) should just
        work.  In addition, multicanvas show methods have the following
        additional keyword arguments:
        
        Parameters
        ----------
        names: bool (False)
            Show multicanvas names at top of plot
            
        colors: bool (True):
            Map stored color to each particle in subplot.

        **kwargs:
            Any valid splot arg (ncols, figsize etc...) or show/patchshow
            args, such as cmap, grid etc...
                    
        If passing a pre-constructed axes/subplots to mc.show(), it must be 
        as a keyword.  As a positional, it will not work! 
        """
        names = kwargs.pop('names', False)
        colors = kwargs.pop('colors', True)
        showstyle = kwargs.pop('showstyle', 'show')
        
        if showstyle not in ['show', 'patchshow']:
            raise MultiError("showstyle must be show or patchshow, "
                             "not %s" % showstyle)
        
        axes, kwargs = putil._parse_ax(*args, **kwargs)	
                
        if not axes:
            axes, kwargs = putil.multi_axes(len(self), **kwargs)

        if len(axes) < len(self):
            logger.warn("MultiCanvas has %s canvas, but only %s axes recieved"
                        " in show()" % (len(self), len(axes)))
            upperlim = len(axes)

        else:
            upperlim = len(self)
            
        pcolors = self._request_plotcolors()
        
        for idx in range(upperlim):
            c = self.canvii[idx]
            if colors:
                def cmap(p):
                    p.color = pcolors[idx]
                    return p             
                c = c.pmap(cmap)
            
            if names:
                kwargs['title'] = self.names[idx]

            getattr(c, showstyle)(axes[idx], **kwargs)
        return axes
示例#2
0
文件: plots.py 项目: hugadams/pyparty
def multishow(images, *args, **kwargs):
    """ """
    names = kwargs.pop('names', [])
    
    if not getattr(images, '__iter__'):
        return showim(images, *args, **kwargs)

    if len(images) == 1:
        return showim(images[0], *args, **kwargs)
    
    axes, kwargs = multi_axes(len(images), **kwargs)
    for idx, ax in enumerate(axes):
        showim(images[idx], ax, *args, **kwargs)
        try:
            ax.set_title(names[idx])
        except IndexError:
            pass
        
    return axes
示例#3
0
def multishow(images, *args, **kwargs):
    """ """
    names = kwargs.pop('names', [])

    if not getattr(images, '__iter__'):
        return showim(images, *args, **kwargs)

    if len(images) == 1:
        return showim(images[0], *args, **kwargs)

    axes, kwargs = multi_axes(len(images), **kwargs)
    for idx, ax in enumerate(axes):
        showim(images[idx], ax, *args, **kwargs)
        try:
            ax.set_title(names[idx])
        except IndexError:
            pass

    return axes