Metadata-Version: 2.0
Name: heatmapcluster
Version: 0.1.2
Summary: Heatmap cluster dendrogram plotter.
Home-page: UNKNOWN
Author: Warren Weckesser
Author-email: UNKNOWN
License: BSD
Keywords: heatmap cluster scipy plot
Platform: UNKNOWN
Classifier: License :: OSI Approved :: BSD License
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Requires-Dist: matplotlib
Requires-Dist: numpy (>=1.6.0)
Requires-Dist: scipy

heatmapcluster
==============

``heatmapcluster`` is a python library for generating a clustered heatmap
with dendrograms plotted along with the heatmap, such as the following:

.. image:: https://raw.githubusercontent.com/WarrenWeckesser/heatmapcluster/master/demo/heatmapcluster_demo.png
   :alt: Example plot
   :align: center
   :scale: 50 %

This is prototype-quality software.  The documentation is sparse, and the API
will likely change.

Plots are generated with matplotlib (http://matplotlib.org/).
To use the package, numpy, scipy and matplotlib must be installed.

``setuptools`` is required to install the package using ``setup.py``.

Example
-------

This is ``heatmapcluster_demo.py``.  Most of the code is the function ``make_data``,
which generates an array of data for the demonstration.  The main part of the
demo is the last three statements of the script.  This script generates the plot
shown above::

    import numpy as np
    import matplotlib.pyplot as plt
    from heatmapcluster import heatmapcluster


    def make_data(size, seed=None):
        if seed is not None:
            np.random.seed(seed)

        s = np.random.gamma([7, 6, 5], [6, 8, 6], size=(size[1], 3)).T
        i = np.random.choice(range(len(s)), size=size[0])
        x = s[i]

        t = np.random.gamma([8, 5, 6], [3, 3, 2.1], size=(size[0], 3)).T
        j = np.random.choice(range(len(t)), size=size[1])

        x += 1.1*t[j].T

        x += 2*np.random.randn(*size)

        row_labels = [('R%02d' % k) for k in range(x.shape[0])]
        col_labels = [('C%02d' % k) for k in range(x.shape[1])]

        return x, row_labels, col_labels


    x, row_labels, col_labels = make_data(size=(64, 48), seed=123)

    h = heatmapcluster(x, row_labels, col_labels,
                       num_row_clusters=3, num_col_clusters=0,
                       label_fontsize=6,
                       xlabel_rotation=-75,
                       cmap=plt.cm.coolwarm,
                       show_colorbar=True,
                       top_dendrogram=True)
    plt.show()


