def showHeatmap(heatmap, *args, **kwargs): """Show *heatmap*, which can be an two dimensional array or a Heat Mapper :file:`.hm` file. Heatmap is plotted using :func:`~matplotlib.pyplot.imshow` function. Default values passed to this function are ``interpolation='nearest'``, ``aspect='auto'``, and ``origin='lower'``.""" try: ndim, shape = heatmap.ndim, heatmap.shape except AttributeError: heatmap, headers = parseHeatmap(heatmap) ndim, shape = heatmap.ndim, heatmap.shape xorigin = headers.pop('xorigin', 0) xextent = headers.pop('xstep', 1) * shape[0] ylabel = kwargs.get('ylabel', '').lower() indices = None if ylabel: for key in headers.get('numbering', []): if startswith(ylabel, key.lower()): indices = headers.get(key) if indices is not None: extent = [ indices[0] - .5, indices[0] + len(indices) - .5, xorigin - .5, xextent - .5 ] else: extent = [-.5, shape[1] * 2 - .5, xorigin - .5, xextent - .5] kwargs.setdefault('extent', extent) for key in ['numbering', 'min', 'max'] + headers.get('numbering', []): headers.pop(key, None) headers.update(kwargs) kwargs = headers if ndim != 2: raise ValueError('mutinfo must be a 2D matrix') kwargs.setdefault('interpolation', 'nearest') kwargs.setdefault('origin', 'lower') kwargs.setdefault('aspect', 'auto') xlabel = kwargs.pop('xlabel', None) ylabel = kwargs.pop('ylabel', None) title = kwargs.pop('title', None) import matplotlib.pyplot as plt show = plt.imshow(heatmap, *args, **kwargs), plt.colorbar() if xlabel is not None: plt.xlabel(xlabel) if ylabel is not None: plt.ylabel(ylabel) if title is not None: plt.title(title) return show
def showHeatmap(heatmap, *args, **kwargs): """Show *heatmap*, which can be an two dimensional array or a Heat Mapper :file:`.hm` file. Heatmap is plotted using :func:`~matplotlib.pyplot.imshow` function. Default values passed to this function are ``interpolation='nearest'``, ``aspect='auto'``, and ``origin='lower'``.""" try: ndim, shape = heatmap.ndim, heatmap.shape except AttributeError: heatmap, headers = parseHeatmap(heatmap) ndim, shape = heatmap.ndim, heatmap.shape xorigin = headers.pop('xorigin', 0) xextent = headers.pop('xstep', 1) * shape[0] ylabel = kwargs.get('ylabel', '').lower() indices = None if ylabel: for key in headers.get('numbering', []): if startswith(ylabel, key.lower()): indices = headers.get(key) if indices is not None: extent = [indices[0] - .5, indices[0] + len(indices) - .5, xorigin - .5, xextent - .5] else: extent = [-.5, shape[1] * 2 - .5, xorigin - .5, xextent - .5] kwargs.setdefault('extent', extent) for key in ['numbering', 'min', 'max'] + headers.get('numbering', []): headers.pop(key, None) headers.update(kwargs) kwargs = headers if ndim != 2: raise ValueError('mutinfo must be a 2D matrix') kwargs.setdefault('interpolation', 'nearest') kwargs.setdefault('origin', 'lower') kwargs.setdefault('aspect', 'auto') xlabel = kwargs.pop('xlabel', None) ylabel = kwargs.pop('ylabel', None) title = kwargs.pop('title', None) import matplotlib.pyplot as plt show = plt.imshow(heatmap, *args, **kwargs), plt.colorbar() if xlabel is not None: plt.xlabel(xlabel) if ylabel is not None: plt.ylabel(ylabel) if title is not None: plt.title(title) return show