Skip to main content

Scientific colormaps for making accessible, informative and 'cmashing' plots

Project description

PyPI - Latest Release PyPI - Python Versions Travis CI - Build Status AppVeyor - Build Status ReadTheDocs - Build Status CodeCov - Coverage 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 found in the PyPI system, so pip install cmasher should suffice.

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 packages than matplotlib would require reading in the text files in the cmasher/colormaps directory, which contain the normalized RGB values (multiply by 255 for regular 8-bit values) of every colormap, and registering them in the package 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).

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 the cmasher.cm module without the prefix). 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).

Note that colormaps imported 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.

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

cmasher-1.2.0.tar.gz (229.4 kB view details)

Uploaded Source

Built Distributions

cmasher-1.2.0-py3-none-any.whl (233.3 kB view details)

Uploaded Python 3

cmasher-1.2.0-py2-none-any.whl (233.3 kB view details)

Uploaded Python 2

File details

Details for the file cmasher-1.2.0.tar.gz.

File metadata

  • Download URL: cmasher-1.2.0.tar.gz
  • Upload date:
  • Size: 229.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/2.7.15

File hashes

Hashes for cmasher-1.2.0.tar.gz
Algorithm Hash digest
SHA256 cb5825c15b5d6db1c16e2857631d7307526c8345620b52ddd9181ce46a56e8e9
MD5 56fd883ecd85528dfd6fad305bca1cc2
BLAKE2b-256 fbce44b4442d42cc3ff424505e83da9707290459cd6be26b5477bc8ec9bdd733

See more details on using hashes here.

File details

Details for the file cmasher-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: cmasher-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 233.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.6.7

File hashes

Hashes for cmasher-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7a90ddf50362ce66007d943da20d000ab03a69806a79912d779c17ebc8b04524
MD5 78f31668f5491541320321f42f45bfd4
BLAKE2b-256 35576a2acaf5031bb811532c7d9be6735043a4821d952cd97206c8cd7b5ab531

See more details on using hashes here.

File details

Details for the file cmasher-1.2.0-py2-none-any.whl.

File metadata

  • Download URL: cmasher-1.2.0-py2-none-any.whl
  • Upload date:
  • Size: 233.3 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/2.7.15

File hashes

Hashes for cmasher-1.2.0-py2-none-any.whl
Algorithm Hash digest
SHA256 afbe037429e5cbc548e26bf255242ad2ccdb94334e3d680af6cafe9358f3a54a
MD5 8b95e5361d1c3aa174a0cb0cc6c26bfb
BLAKE2b-256 bd8f6b788dafbfb6bb3e0bd4d524a36eb8c742521433e5d21afa580c7eb323e6

See more details on using hashes here.

Supported by

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