Skip to main content

Publication-quality square-cell heatmap visualisation for matplotlib

Project description

cubeheatmap

Publication-quality square-cell heatmaps for matplotlib

PyPI License Python 3.10+


cubeheatmap renders clean, equal-sized square-cell heatmaps designed for scientific publications, reports, and presentations. Works with numpy arrays, pandas DataFrames, and any 2-D numerical data.

cubeheatmap preview

Features

  • Square cells - every cell is a perfect square, sized automatically
  • Multiple input formats - from_matrix(), from_dataframe()
  • Annotations - display values inside cells with auto-contrast text
  • Significance markers - overlay stars or custom symbols with sig_mask
  • Grid layouts - draw_grid() for multi-panel figures
  • Fully customisable - 36+ style parameters: colors, fonts, rounded corners, dark themes
  • Domain presets - citation networks, software dependencies, data pipelines, web graphs, social networks

Installation

pip install cubeheatmap

Quick Start

import numpy as np
import cubeheatmap as ch

data = np.random.uniform(-4, 4, (10, 3))
hm = ch.CubeHeatmap.from_matrix(
    data,
    row_labels=[f"Gene_{i}" for i in range(10)],
    col_labels=["Day14", "Day21", "Day40"],
)

style = ch.Style(cmap="RdBu_r", vmin=-4, vmax=4, colorbar_label="log2FC")
ax = ch.draw(hm, title="My Heatmap", style=style)
ax.figure.savefig("heatmap.png", dpi=150, bbox_inches="tight")

For presets, customization and transforms see docs/usage.md.

Gallery

Annotated Significance markers Dark theme
Grid layout Rounded corners Likert survey
Citation network Model benchmark Dense microarray

Examples

16 runnable scripts covering all features and presets - see docs/examples.md for the full list with previews.

cd examples && python generate_all.py

Citation

If you use cubeheatmap in a publication, please cite it:

APA:

dam2452. (2026). cubeheatmap: Publication-quality square-cell heatmaps for Python (Version 0.1.0). https://github.com/dam2452/cubeheatmap

BibTeX:

@software{cubeheatmap2026,
  title   = {cubeheatmap: Publication-quality square-cell heatmaps for Python},
  author  = {dam2452},
  year    = {2026},
  version = {0.1.0},
  url     = {https://github.com/dam2452/cubeheatmap}
}

Contributing

Contributions are welcome! Here's how you can help:

  1. Bug reports - Open an issue with a minimal reproducible example
  2. Feature requests - Open an issue describing the use case
  3. Code contributions - Fork, create a feature branch, and open a pull request
  4. New presets - Add a new submodule under cubeheatmap/presets/ with a to_heatmap() function and an example

Development setup

git clone https://github.com/dam2452/cubeheatmap.git
cd cubeheatmap
pip install -e ".[dev]"
pytest tests/

License

This project is licensed under CC BY-NC 4.0 - Creative Commons Attribution-NonCommercial 4.0 International.

  • Use it freely - for research, education, personal projects
  • Cite the author - attribution required in publications and derivative works
  • No commercial use - you may not sell or monetize this software

See LICENSE for full details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cubeheatmap-0.1.0.tar.gz (18.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cubeheatmap-0.1.0-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

Details for the file cubeheatmap-0.1.0.tar.gz.

File metadata

  • Download URL: cubeheatmap-0.1.0.tar.gz
  • Upload date:
  • Size: 18.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for cubeheatmap-0.1.0.tar.gz
Algorithm Hash digest
SHA256 15bef05774b49b5635aa262f15438323fed4f4eb24f013805ce276d8aa6133c8
MD5 7981e91acbba6fa18ee781144f887526
BLAKE2b-256 d87f063be0cd8b3af81fcc11d2b9d7b4b7b012e0baa444d04e966591022a6156

See more details on using hashes here.

File details

Details for the file cubeheatmap-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: cubeheatmap-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 17.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for cubeheatmap-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0738915381bed6127fa13dd8ed1eb012322a7a4788627cddddafbe1d7657e5b1
MD5 a1d37eba45ad7eac17b240ae5407c9a0
BLAKE2b-256 edcf235cfa377c01a163a54baa5dc9d33a9abd975563ae7368ccc57f10065092

See more details on using hashes here.

Supported by

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