Getting Started

Clustergrammer is a web-based tool for visualizing and analyzing high-dimensional data as interactive and shareable hierarchically clustered heatmaps (see Introduction to Clustergrams). This section will provide information on how to interact with the visualization and how to quickly visualize your own data using the Clustergrammer-Web, Clustergrammer2, and Clustergrammer-Widget.

See Case Studies and Tutorials for examples of how Clustergrammer can be used to explore and analyze real world data. For developers interested in building their own web page using Clustergrammer, please refer to the Web-Development section.

What’s New

Scipy 2020

We recently presented Clustergrammer2 at SciPy 2020 Virtual Conference and showed off new examples (Citi Bike, 10X Genomics Visium) and features (e.g. manual annotation of categories).

Visium Spatial Transcriptomics Data from 10X Genomics


We used Clustergrammer2, the plotting library bqplot, the Jupyter dashboard library voila, and the Jupyter notebook hosting service Binder to build an interactive data exploration dashboard for Visium data from the mouse brain from 10X Genomics (try dashboard: Visium-Clustergrammer2 Dashboard, code: This dashboard generates linked views of spatial tissue data and high-dimensional gene expression data - see GitHub repo for more information.

Using Clustergrammer

Clustergrammer can be used as a web application Clustergrammer-Web, a Jupyter Widget (Clustergrammer2 and Clustergrammer-Widget) or stand alone JavaScript libraries (Clustergrammer-GL and Clustergrammer-JS). The newer Clustergrammer2 and Clustergrammer-GL libraries are built to handle larger datasets such as scRNA-seq data.

MyBinder-running-cgm2 NBViewer-running-cgm2

This tutorial shows how Clustergrammer2 can be run on the cloud using MyBinder. For additional examples with real world data (e.g. scRNA-seq data), please see Case Studies and Tutorials.

Interacting with Clustergrammer Heatmaps

demo GIF

Clustergrammer produces highly interactive visualizations that enable intuitive exploration of high-dimensional data including:

Clustergrammer also has Biology-Specific Features for working with gene-level data including:

  • Mouseover gene names and description look-up (using Harmonizome)
  • Enrichment analysis to find biological information (e.g. up-stream transcription factors) specific to your set of genes (using Enrichr)

Clustergrammer Web-App

Users can easily generate an interactive and shareable heatmap visualization using the Clustergrammer-Web (see upload section screenshot below). Simply upload a tab-separated matrix file (see Matrix Formats and Input/Output for more information) at the homepage to be redirected to a permanent and shareable visualization of your data.

Clustergrammer Web

Users can upload their data using the web app homepage. Simply choose your file and upload to be redirected to your permanent and shareable visualization.

Once you upload your data, the Clustergrammer-Web clusters your data and produces three views: a heatmap of your input matrix, a similarity matrix of your columns, and a similarity matrix of your rows. See the screenshots below and the example visualization for an example results page.

Heatmap View

Web application heatmap

Above is an example clustergram visualization produced by the Clustergrammer-Web. Clustergrammer produces three views of your data; the clustered heatmap view is shown above.

Similarity Matrix View

Web application sim-mat

Clustergrammer produces similarity matrices of rows and columns to provide additional perspectives on your data. Above is an example column similarity matrix.

Users can share their interactive visualizations using their permanent link. See Interacting with the Visualization for more information.

Jupyter Widgets

Jupyter notebooks are ideal for generating reproducible workflows and analysis. They are also the best way to share Clustergrammer’s interactive visualizations while providing context, analysis, and the underlying data to enable reproducibility (see Sharing with nbviewer).

Clustergrammer-Widget and Clustergrammer2 enable users to easily produce interactive visualizations within a Jupyter notebook that can be shared with collaborators (using nbviewer). The Clustergrammer-Widget can be used to visualize a matrix of data from a matrix file or from a Pandas DataFrame (see Matrix Formats and Input/Output for more information).

Clustergrammer has been applied to visualize and analyze a wide variety of biological and non-biological data. See the Jupyter notebook examples below and Case Studies and Tutorials for more information.