def heatmap_mpl(dfr, outfilename=None, title=None, params=None):
    """Returns matplotlib heatmap with cluster dendrograms.

    - dfr - pandas DataFrame with relevant data
    - outfilename - path to output file (indicates output format)
    - params - a list of parameters for plotting: [colormap, vmin, vmax]
    - labels - dictionary of alternative labels, keyed by default sequence
               labels
    - classes - dictionary of sequence classes, keyed by default sequence
                labels
    """
    # Layout figure grid and add title
    # Set figure size by the number of rows in the dataframe
    figsize = max(8, dfr.shape[0] * 0.175)
    fig = plt.figure(figsize=(figsize, figsize))
    # if title:
    #     fig.suptitle(title)
    heatmap_gs = gridspec.GridSpec(
        2, 2, wspace=0.0, hspace=0.0, width_ratios=[0.3, 1], height_ratios=[0.3, 1]
    )

    # Add column and row dendrograms/axes to figure
    coldend = add_mpl_dendrogram(dfr, fig, heatmap_gs, orientation="col")
    rowdend = add_mpl_dendrogram(dfr, fig, heatmap_gs, orientation="row")

    # Add heatmap axes to figure, with rows/columns as in the dendrograms
    heatmap_axes = get_mpl_heatmap_axes(dfr, fig, heatmap_gs)
    ax_map = heatmap_axes.imshow(
        dfr.iloc[rowdend["dendrogram"]["leaves"], coldend["dendrogram"]["leaves"]],
        interpolation="nearest",
        cmap=params.cmap,
        origin="lower",
        vmin=params.vmin,
        vmax=params.vmax,
        aspect="auto",
    )

    # Are there class colourbars to add?
    if params.classes is not None:
        add_mpl_colorbar(dfr, fig, coldend, params, orientation="col")
        add_mpl_colorbar(dfr, fig, rowdend, params, orientation="row")

    # Add heatmap labels
    add_mpl_labels(
        heatmap_axes,
        dfr.index[rowdend["dendrogram"]["leaves"]],
        dfr.index[coldend["dendrogram"]["leaves"]],
        params,
    )

    # Add colour scale
    add_mpl_colorscale(fig, heatmap_gs, ax_map, params, title)

    # Return figure output, and write, if required
    plt.subplots_adjust(top=0.85)  # Leave room for title
    # fig.set_tight_layout(True)
    # We know that there is a UserWarning here about tight_layout and
    # using the Agg renderer on OSX, so catch and ignore it, for cleanliness.
    with warnings.catch_warnings():
        warnings.simplefilter("ignore")
        heatmap_gs.tight_layout(fig, h_pad=0.1, w_pad=0.5)
    if outfilename:
        fig.savefig(outfilename)
    return fig
def heatmap_mpl ( dfr , outfilename = None , title = None , params = None ) : figsize = max ( 8 , dfr . shape [ 0 ] * 0.175 ) fig = plt . figure ( figsize = ( figsize , figsize ) ) heatmap_gs = gridspec . GridSpec ( 2 , 2 , wspace = 0.0 , hspace = 0.0 , width_ratios = [ 0.3 , 1 ] , height_ratios = [ 0.3 , 1 ] ) coldend = add_mpl_dendrogram ( dfr , fig , heatmap_gs , orientation = "col" ) rowdend = add_mpl_dendrogram ( dfr , fig , heatmap_gs , orientation = "row" ) heatmap_axes = get_mpl_heatmap_axes ( dfr , fig , heatmap_gs ) ax_map = heatmap_axes . imshow ( dfr . iloc [ rowdend [ "dendrogram" ] [ "leaves" ] , coldend [ "dendrogram" ] [ "leaves" ] ] , interpolation = "nearest" , cmap = params . cmap , origin = "lower" , vmin = params . vmin , vmax = params . vmax , aspect = "auto" , ) if params . classes is not None : add_mpl_colorbar ( dfr , fig , coldend , params , orientation = "col" ) add_mpl_colorbar ( dfr , fig , rowdend , params , orientation = "row" ) add_mpl_labels ( heatmap_axes , dfr . index [ rowdend [ "dendrogram" ] [ "leaves" ] ] , dfr . index [ coldend [ "dendrogram" ] [ "leaves" ] ] , params , ) add_mpl_colorscale ( fig , heatmap_gs , ax_map , params , title ) plt . subplots_adjust ( top = 0.85 ) with warnings . catch_warnings ( ) : warnings . simplefilter ( "ignore" ) heatmap_gs . tight_layout ( fig , h_pad = 0.1 , w_pad = 0.5 ) if outfilename : fig . savefig ( outfilename ) return fig
Returns matplotlib heatmap with cluster dendrograms.

    - dfr - pandas DataFrame with relevant data
    - outfilename - path to output file (indicates output format)
    - params - a list of parameters for plotting: [colormap, vmin, vmax]
    - labels - dictionary of alternative labels, keyed by default sequence
               labels
    - classes - dictionary of sequence classes, keyed by default sequence
                labels