Skip to main content

PyPI - Latest Release PyPI - Python Versions Travis CI - Build Status AppVeyor - Build Status ReadTheDocs - Build Status CodeCov - Coverage Status JOSS - Submission Status

CMasher: Scientific colormaps for making accessible, informative and cmashing plots

The CMasher package provides a collection of scientific colormaps to be used by different Python packages and projects, mainly in combination with matplotlib, showcased in the online documentation. The colormaps in CMasher are all designed to be perceptually uniform sequential using the viscm package; most of them are color-vision deficiency friendly; and they cover a wide range of different color combinations to accommodate for most applications. It offers several alternatives to commonly used colormaps, like chroma and rainforest for jet; sunburst for hot; neutral for binary; and fusion and redshift for coolwarm. If you cannot find your ideal colormap, then please open an issue, provide the colors and/or style you want, and I will try to create one to your liking! Let’s get rid of all bad colormaps in the world together!

If you use CMasher for your work, then please star the repo, such that I can keep track of how many users it has and more easily raise awareness of bad colormaps.

Colormap overview

Below is an overview of all the colormaps that are currently in CMasher (made with the cmr.create_cmap_overview() function). For more information, see the online documentation.

CMasher Colormap Overview

Installation & Use

How to install

CMasher can be easily installed by either cloning the repository and installing it manually:

$ git clone https://github.com/1313e/CMasher
$ cd CMasher
$ pip install .

or by installing it directly from PyPI with:

$ pip install cmasher

CMasher can now be imported as a package with import cmasher as cmr.

Example use

The colormaps shown above can be accessed by simply importing CMasher. This makes them available in the cmasher module, in addition to registering them in matplotlib’s cm module (with added 'cmr.' prefix to avoid name clashes). So, for example, if one were to use the rainforest colormap, this could be done with:

# Import CMasher to register colormaps
import cmasher as cmr

# Import packages for plotting
import matplotlib.pyplot as plt
import numpy as np

# Access rainforest colormap through CMasher or MPL
cmap = cmr.rainforest                   # CMasher
cmap = plt.get_cmap('cmr.rainforest')   # MPL

# Generate some data to plot
x = np.random.rand(100)
y = np.random.rand(100)
z = x**2+y**2

# Make scatter plot of data with colormap
plt.scatter(x, y, c=z, cmap=cmap, s=300)
plt.show()

Accessing the colormaps in other languages than Python would require reading in the <cmap_name>_8bit.txt text files in the cmasher/colormaps directory, which contain the 8-bit RGB values of every colormap, and registering them in the appropriate package in the language manually. For those that are interested, the viscm source files that were used for creating the colormaps can also be found in the cmasher/colormaps directory in the repo (the source files are not provided with the package distribution). Note that my modified version of viscm (available here) is required in order to properly view and edit the source file of a diverging colormap.

Using custom colormaps

CMasher allows for custom colormaps to be imported with the cmr.import_cmaps function (which is executed automatically on the cmasher/colormaps directory when CMasher is imported). This function takes the path to a colormap file named cm_<cmap_name> (or the path to a directory containing such files); creates a matplotlib Colormap object using the data in the file; and registers it in matplotlib with the name 'cmr.<cmap_name>' (it will also be available in CMasher as cmr.cm.<cmap_name>). A colormap file can either be a JSCM-file as created by viscm or a text file that contains the (normalized) RGB values of the colormap (see the text files in the cmasher/colormaps directory for the structure of such files). If one wishes to register a colormap using (normalized) RGB values that are already in memory, the cmr.register_cmap function can be used for this.

Note that colormaps imported/registered this way cannot be accessed through CMasher using cmr.<cmap_name>, unlike CMasher’s own colormaps, but solely using cmr.cm.<cmap_name> (access through matplotlib is unchanged). This is to keep official and unofficial colormaps separated in CMasher.

Metadata

Release files for cmasher 1.3.3

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

Source distribution (sdist)

Source distribution for cmasher 1.3.3
File Size Uploaded
cmasher-1.3.3.tar.gz 310.5 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for cmasher 1.3.3
File Interpreter ABI Platform
cmasher-1.3.3-py3-none-any.whl Python 3 none any Details
cmasher-1.3.3-py2-none-any.whl Python 2 none any Details

Total release size: 942.4 kB

Release files / cmasher-1.3.3.tar.gz

Download URL cmasher-1.3.3.tar.gz
Size 310.5 kB
Tags Source
SHA-256 checksum
How to use checksums
44f52918bc84a667e585f7ce0e9b800d1cd6463de117c5a73619164f5185f2c4
BLAKE2b-256 checksum
How to use checksums
4c104ec294c58ea983cb80681660fa3061897efcd4bd4bd140b0f08da064722e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/2.7.15

Release files / cmasher-1.3.3-py3-none-any.whl

Download URL cmasher-1.3.3-py3-none-any.whl
Size 316.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
69a9477fc7b2c3dbf595795602cade3cfcc50d0c6e373fba0f20367e35034249
BLAKE2b-256 checksum
How to use checksums
2e41543d2b6809e93fb44d8961b08d277d98ae17f860624d9f36f4115066e0b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.7.1

Release files / cmasher-1.3.3-py2-none-any.whl

Download URL cmasher-1.3.3-py2-none-any.whl
Size 316.0 kB
Tags Python 2
SHA-256 checksum
How to use checksums
e61e49e89dfa6ccbd6df90dc22c30e6331a72b5d7a0771fc49c897803f197749
BLAKE2b-256 checksum
How to use checksums
7295c1bebaa468b918e2a4e0e23ef164e342bf9a7ff914a932f4d81dd8912efd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/2.7.15

Release history Release notifications | RSS feed

1.9.4

2 release files

1.9.3

2 release files

1.9.2

2 release files

1.9.1

2 release files

1.9.0

2 release files

1.8.0

2 release files

1.7.2

2 release files

1.7.1

2 release files

1.7.0

2 release files

1.6.3

2 release files

1.6.2

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.10

2 release files

1.5.9

2 release files

1.5.8

2 release files

1.5.7

2 release files

1.5.6

2 release files

1.5.5

2 release files

1.5.4

2 release files

1.5.3

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.3

3 release files

1.4.2

3 release files

1.4.1

3 release files

1.4.0

3 release files

1.3.5

3 release files

1.3.4

3 release files

This release

1.3.3 This release

3 release files

1.3.2

3 release files

1.3.1

3 release files

1.3.0

3 release files

1.2.3

3 release files

1.2.2

3 release files

1.2.1

3 release files

1.2.0

3 release files

1.1.5

3 release files

1.1.4

3 release files

1.1.3

3 release files

1.1.2

3 release files

1.1.1

3 release files

1.1.0

3 release files

1.0.5

3 release files

1.0.4

3 release files

1.0.3

3 release files

1.0.2

3 release files

1.0.1

4 release files

1.0.0

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