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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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