PyComplexHeatmap
PyComplexHeatmap: A Python package to plot complex heatmap (clustermap)
Install / Use
/learn @DingWB/PyComplexHeatmapREADME
PyComplexHeatmap

PyComplexHeatmap is a Python package to plot complex heatmap (clustermap). Please click here for documentation.
Documentation:
https://dingwb.github.io/PyComplexHeatmap <br><br> PYPI <br>
Wiki
wiki/layout <br> wiki/Parameters <br> wiki/Features
Dependencies:
- matplotlib
- numpy
- pandas
- scipy
- fastcluster (optional)
pip install --ignore-install matplotlib numpy pandas fastcluster
Citation
Ding, W., Goldberg, D. and Zhou, W. (2023), PyComplexHeatmap: A Python package to visualize multimodal genomics data. iMeta e115. https://doi.org/10.1002/imt2.115 <br> DOI: 10.1002/imt2.115 <br> PMID: 38454967
Installation
- Install using pip:
pip install PyComplexHeatmap
#upgrade from older version
pip install --upgrade PyComplexHeatmap
- Install the developmental version directly from github:
pip install git+https://github.com/DingWB/PyComplexHeatmap
# reinstall
pip uninstall -y PyComplexHeatmap && pip install git+https://github.com/DingWB/PyComplexHeatmap
OR
git clone https://github.com/DingWB/PyComplexHeatmap
cd PyComplexHeatmap
python setup.py install
Usage
Simple Guide To Get started
Example output
Click picture to view the source code
<table> <tr style="height: 500px"> <td style="width:33%; background-color:white;text-align:center; vertical-align:middle"> <a href="https://dingwb.github.io/PyComplexHeatmap/build/html/notebooks/kwargs.html#Control-gap-&-pad-in-heatmap"> <img src="docs/images/gallery1.png" title="kwargs, gap and pad" align="center" width="250px"> </a> </td> <td style="width:33%; background-color:white;text-align:center; vertical-align:middle"> <a href="https://dingwb.github.io/PyComplexHeatmap/build/html/notebooks/anno_img_example.html#Visualizing-motif-enrichment-results-using-anno_img"> <img src="docs/images/gallery11.png" title="Modify labels" align="center" width="250px"> </a> </td> <td style="width:33%; background-color:white;text-align:center; vertical-align:middle"> <a href="https://dingwb.github.io/PyComplexHeatmap/build/html/notebooks/composite_heatmaps.html#Composite-two-heatmaps-horizontally-for-mouse-DNA-methylation-array-dataset"> <img src="docs/images/gallery3.png" title="Combine two heatmap horizontally" align="center" width="250px"> </a> </td> </tr> <tr style="height: 500px"> <td style="width:33%; background-color:white;text-align:center; vertical-align:middle"> <a href="https://dingwb.github.io/PyComplexHeatmap/build/html/notebooks/advanced_usage.html#Only-plot-the-annotations"> <img src="docs/images/gallery5.png" title="Only plot annotations" align="center" width="250px"> </a> </td> <td style="width:33%; background-color:white;text-align:center; vertical-align:middle"> <a href="https://dingwb.github.io/PyComplexHeatmap/build/html/notebooks/advanced_usage.html#Cluster-between-groups-and-cluster-within-groups"> <img src="docs/images/gallery6.png" title="Cluster between groups" align="center" width="250px"> </a> </td> <td style="width:33%; background-color:white;text-align:center; vertical-align:middle"> <a href="https://dingwb.github.io/PyComplexHeatmap/build/html/notebooks/single_cell_methylation.html"> <img src="docs/images/gallery9.png" title="DNA methylation cell type specific signatures" align="center" width="250px"> </a> </td> </tr> <tr style="height: 500px"> <td style="width:33%; background-color:white;text-align:center; vertical-align:middle"> <a href="https://dingwb.github.io/PyComplexHeatmap/build/html/notebooks/oncoPrint.html"> <img src="docs/images/gallery8.png" title="OncoPrint with columns split" align="center" width="250px"> </a> </td> <td style="width:33%; background-color:white;text-align:center; vertical-align:middle"> <a href="https://dingwb.github.io/PyComplexHeatmap/build/html/notebooks/dotHeatmap.html#Visualize-up-to-five-dimension-data-using-DotClustermapPlotter"> <img src="docs/images/gallery7.png" title="Dot clustermap to show enrichment result" align="center" width="250px"> </a> </td> <td style="width:33%; background-color:white;text-align:center; vertical-align:middle"> <a href="https://dingwb.github.io/PyComplexHeatmap/build/html/notebooks/oncoPrint2.html"> <img src="docs/images/gallery4.png" title="Visualizing categorical variables using oncoPrint" align="center" width="250px"> </a> </td> </tr> <tr style="height: 500px"> <td style="width:33%; background-color:white;text-align:center; vertical-align:middle"> <a href="https://dingwb.github.io/PyComplexHeatmap/build/html/notebooks/cpg_modules.html#Plotting-the-Dot-clustermap"> <img src="docs/images/gallery2.png" title="Dot clustermap with annotations" align="center" width="250px"> </a> </td> <td style="width:33%; background-color:white;text-align:center; vertical-align:middle"> <a href="https://dingwb.github.io/PyComplexHeatmap/build/html/notebooks/advanced_usage.html#Custom-annotation"> <img src="docs/images/gallery10.png" title="Custom annotation" align="center" width="250px"> </a> </td> <td style="width:33%; background-color:white;text-align:center; vertical-align:middle"> <a href="https://dingwb.github.io/PyComplexHeatmap/build/html/notebooks/gene_enrichment_analysis.html#Plot"> <img src="docs/images/gallery12.png" title="Plot only the annotation with different orientations" align="center" width="250px"> </a> </td> </tr> </table>Advanced Usage
Kwargs
More Examples
https://dingwb.github.io/PyComplexHeatmap/build/html/more_examples.html
Call for Contributions
The PyComplexHeatmap project welcomes your expertise and enthusiasm!
Small improvements or fixes are always appreciated. If you are considering larger contributions to the source code, please contact us (ding.wu.bin.gm@gmail.com).
Writing code isn’t the only way to contribute to PyComplexHeatmap. You can also:
- review pull requests
- help us stay on top of new and old issues
- develop tutorials, presentations, and other educational materials
- maintain and improve our website
- develop graphic design for our brand assets and promotional materials
- translate website content
- help with outreach and onboard new contributors
- put forward some new ideas about update.
Related Skills
node-connect
345.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
106.4kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
106.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
345.9kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
