Skip to main content
drawing

Docs Docs Quality Marimo PyPI version Python GitHub stars

buy me caffeine

Scientific color maps

Scicomap helps you choose, assess, and improve scientific colormaps so your figures remain readable and faithful to the underlying data.

Blog post

Scicomap Medium blog post (free)

Official Documentation

Tutorial notebook

Install v2

Python 3.10 or newer is required. This checkout is the 2.0.0 release candidate; install it locally with pip install .. After publication, use pip install 'scicomap>=2,<3'.

Inspect the original map

Python and CLI use the same diagnostics and selected map:

import scicomap as sc

chart = sc.ScicoSequential("hawaii")
print(sc.diagnose_cmap(chart.cmap, chart.ctype)["status"])
chart.assess_cmap(figsize=(14, 6)).savefig("hawaii-original.png")
scicomap check hawaii --type sequential
scicomap preview hawaii --type sequential --out hawaii-original.png

Correct and reuse

Correction is explicit. Save the exact corrected colors for later use:

corrected = chart.unif_sym_cmap(lightness_rounding=0, bitonic=False)
chart.assess_cmap(figsize=(14, 6)).savefig("hawaii-corrected.png")
chart.export_cmap("hawaii.json")
scicomap fix hawaii --lightness-rounding 0 --no-bitonic --out hawaii-corrected.png --export hawaii.json
scicomap apply hawaii.json --image input.png --out mapped.png --json

Python plots return Figures; call plt.show() to display them. Only wizard prompts. Every CLI command accepts --json, which never prompts or opens a window; rendering requires --out. JSON responses use ok, command, inputs, data, warnings, and errors. Artifacts include their kind, absolute path, and selected map. Exit codes: 0 success, 2 invalid input, 1 operational failure.

Diagnostics are family-specific heuristics. CVD previews simulate selected color-vision conditions and do not certify accessibility. Review the actual figure, labels, contrast, and alternate encodings.

See the v2 migration guide for breaking changes and the user guide for scalar data, normalization, and report workflows.

Documentation map

Development

Use just recipes with uv's project .venv. Routine commands use the committed lockfile without updating it. Run uv lock when changing dependencies.

just sync          # lint and test extras only
just check         # ordinary tests, Ruff on src/tests/scripts, and ty on src/scicomap
just sync-docs     # add documentation tools; Pandoc binary required separately
just docs          # build web docs and LLM assets
just check-docs    # strict generated examples and browser bootstrap tests

Run a focused test with uv run --locked python -m pytest tests/core/test_cmath.py. Tests marked docs need the docs extra and run separately through just check-docs.

Read the Docs is kept as a temporary fallback during the Pages rollout.

Contribution guidelines are available in CONTRIBUTING.md. Release notes are tracked in CHANGELOG.md and GitHub releases.

Background

Scicomap uses CAM02-UCS lightness J', chroma C', and hue to assess and transform colormaps. It builds on ehtplot and palettes from cmcrameri, cmasher, palettable, colorcet, and cmocean. See the introduction for color-space concepts and the gallery for the six map families.

Metadata

Release files for scicomap 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scicomap 2.0.0
File Size Uploaded
scicomap-2.0.0.tar.gz 2.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for scicomap 2.0.0
File Interpreter ABI Platform
scicomap-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 4.3 MB

Release files / scicomap-2.0.0.tar.gz

Download URL scicomap-2.0.0.tar.gz
Size 2.1 MB
Tags Source
SHA-256 checksum
How to use checksums
a7773166365836bb4f450c34ca5861860f0161db7353cf3f15b9d660d8e8bac4
BLAKE2b-256 checksum
How to use checksums
9ffb7ba7489630bc17329be666e44860795c34e9127b646a8fd37cea88ea38c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / scicomap-2.0.0-py3-none-any.whl

Download URL scicomap-2.0.0-py3-none-any.whl
Size 2.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
4d53167207aea13b389ff62625648fd29cbda2fc5945fb299c42bfcfc830f711
BLAKE2b-256 checksum
How to use checksums
c06b78d4f734b63a5b929ceb33979bed7e4555d2a6798c3fdb3bbf52c7fd9b61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.4.1

2 release files

0.4

2 release files

0.3

2 release files

0.2

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page