Skip to main content

Metal and rock inspired Matplotlib colormaps.

Project description

Metalmaps - Heavy Metal and Classic Rock Album Art Inspired Matplotlib Colormaps

Ever wanted to make your python plots more metal? Fear not, now you can! metalmaps delivers heavy metal and classic rock album art inspired matplotlib colormaps!

Visit the gallery for a comprehensive picture.

Contents

Installation

Install this package via pip:

pip install metalmaps

Alternatively, grab the source from github.

Usage

To use these, you can import them and use them with matplotlib as you would with any other color map.

from metalmaps import black_sabbath
from matplotlib.pyplot import imshow
from numpy import random

imshow(random.rand(128, 128), cmap=black_sabbath)

The color maps can also be accessed in matplotlib using strings by prefixing metalmaps, e.g.

import metalmaps

imshow(random.rand(128, 128), cmap="metalmaps.red")

Using a colormap as default line colors in plots

It's possible to replace the default matplotlib color cycle with one provided by this package. To achieve this, call the provided metalmaps.set_color_cycle() function, and pass the colormap you want as the argument, e.g:

import metalmaps
metalmaps.set_color_cycle(metalmaps.reign_in_blood)

For example, this code

from matplotlib import pyplot as plt
import numpy as np

import metalmaps
metalmaps.set_color_cycle(metalmaps.reign_in_blood)

x = np.linspace(0, 1.4, 200)
def y(x, phi):
    return np.sin(1.2 * np.pi * (x + 0.25) - 0.1 * phi)

plt.figure()

for i in range(10):
    labelname = "C"+str(i)
    plt.plot(x, y(x, i), linewidth=5, label=labelname)

plt.legend(ncols=2)
plt.tight_layout()
plt.savefig("my_figure.png")

results in the following figure:

where we didn't have to specify the different colors each time we called plot().

Examples

This package currently includes 30 colormaps:

  • Animals (Pink Floyd)
  • The Apostasy (Behemoth)
  • Ashes of the Wake (Lamb of God)
  • Black Sabbath (Black Sabbath)
  • The Blues Brothers (The Blues Brothers)
  • Blues Pills (Blues Pills)
  • Cosmo's Factory (Creedence Clearwater Revival)
  • Deep Purple in Rock (Deep Purple)
  • The Dethalbum (Dethklok)
  • Fear of the Dark (Iron Maiden)
  • From Mars to Sirius (Gojira)
  • Hybrid Theory (Linkin Park)
  • Hypnotize (System of a Down)
  • In Utero (Nirvana)
  • L.A. Woman (The Doors)
  • L'enfant Sauvage (Gojira)
  • London Calling (The Clash)
  • Master of Puppets (Metallica)
  • Made in Japan (Deep Purple)
  • Meteora (Linkin Park)
  • The Number of the Beast (Iron Maiden)
  • obZen (Meshuggah)
  • Overkill (Motörhead)
  • Painkiller (Judas Priest)
  • Paranoid (Black Sabbath)
  • Powerslave (Iron Maiden)
  • Rage Against The Machine (Rage Against The Machine)
  • Reign in Blood (Slayer)
  • Ride the Lightning (Metallica)
  • Rock 'n' Roll (Motörhead)
  • Screaming for Vengeance (Judas Priest)
  • South of Heaven (Slayer)
  • The Hunter (Mastodon)
  • The Rise and Fall of Ziggy Stardust and the Spiders From Mars (David Bowie)
:exclamation: For a full gallery, visit https://mladenivkovic.github.io/metalmaps/metalmaps.html

Here are some examples:

Black Sabbath (Black Sabbath)

Deep Purple in Rock (Deep Purple)

From Mars To Sirius (Gojira)

Master of Puppets (Metallica)

obZen (Meshuggah)

Overkill (Motörhead)

Painkiller (Judas Priest)

Paranoid (Black Sabbath)

The Hunter (Mastodon)

Note

Of course, these aren't necessarily designed to be colorblind friendly, or perceptually uniform, so use them with caution. They are fun though. To underline how much you should not use these in a real scientific publication (apart from perhaps qualitative imaging), the lightness values are shown below.

For quantitative comparisons, please ensure that you use a perceptually uniform colour map (see e.g. those available directly through matplotlib).

Contributing

Yes please! It would be grand to collect even more album art colormaps.

Intstructions:

  • generate your color palette any way you please, and add it to colors.py
  • instantiate the matplotlib colormap in __init__.py
  • add your addition to the album lists in README.md and __init__.py
  • submit your merge request
  • ???
  • profit!

Authors, License, Credits

Credits

All of this was inspired by (and shamelessly copied from) Josh Borrow's swiftascmaps.

Image credits:

  • The "Kelvin-Helmholtz" data used in the plots below were generated using mesh-hydro.
  • The "EAGLE" data used in the plots below were obtained from the swiftsim repository.
  • The "NGC" data used in the plots below were originally obtained from flickr, credits to Judy Schmidt. I modified the image later to normalize the pixel values to be able to demonstrate the colormaps as above.

License

License: LGPLv3

Authors and Contributors

Mladen Ivkovic, Josh Borrow

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

metalmaps-2.1.0.tar.gz (18.1 kB view details)

Uploaded Source

Built Distribution

metalmaps-2.1.0-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

Details for the file metalmaps-2.1.0.tar.gz.

File metadata

  • Download URL: metalmaps-2.1.0.tar.gz
  • Upload date:
  • Size: 18.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for metalmaps-2.1.0.tar.gz
Algorithm Hash digest
SHA256 f5f5c107f55099c088e8dd406e483ed5ebe0ab1642198a961f12f4b15857bc75
MD5 52f9eec6a6c063b766442a623bb2e2ce
BLAKE2b-256 c29000204139891ba49474698f0b5f93a28681eca4edc277fa92786f1e38b58c

See more details on using hashes here.

File details

Details for the file metalmaps-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: metalmaps-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for metalmaps-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bd4ca10f35bbdbf165dc5efe8ef5ad1b91a8e2b8c87a9499a32ae1b0500898d0
MD5 8381a22aff06693daaa518c7ba4aaec1
BLAKE2b-256 ba21bef7faecccedd856b826ea473e5ecc8943765bfff492f5805b7928db9d27

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