Skip to main content

Heatmap cluster dendrogram plotter.

Project description

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()

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page