Skip to content

JosephBARBIERDARNAL/pypalettes

Repository files navigation

PyPalettes is supported by Matplotlib Journey, an interactive online course designed to make you a master of Matplotlib. If you want to support PyPalettes and become a Matplotlib expert, consider purchasing the course!



PyPalettes

pypalettes logo

A large (+2500) collection of color maps for Python.

This package is based on the R package paletteer, and all associated sub-packages (with original palettes) mentioned in the LICENSE file.



Installation

With pip:

pip install pypalettes

With conda:

conda install pypalettes



Quick start

Once pypalettes is imported, all the palettes are now accessible as any other colormap in matplotlib or seaborn via the palette or cmap arguments.

Continuous palette

import matplotlib.pyplot as plt
import numpy as np
from pypalettes import load_cmap

cmap = load_cmap("Sunset2", cmap_type="continuous")

data = np.random.randn(20, 20)

plt.imshow(data, cmap=cmap)
plt.colorbar()
plt.show()

heatmap example

Categorical palette

import matplotlib.pyplot as plt
import seaborn as sns
from pypalettes import load_cmap

cmap = load_cmap("Fun")
palette = cmap.colors # return colors as a list of hexadecimal values

df = sns.load_dataset("penguins")

g = sns.lmplot(
    data=df,
    x="bill_length_mm",
    y="bill_depth_mm",
    hue="species",
    palette=palette,
)
g.set_axis_labels("Snoot length", "Snoot depth")
plt.show()

scatterplot example

Your own palette

import matplotlib.pyplot as plt
from pypalettes import add_cmap
import numpy as np

cmap = add_cmap(
    colors=["#D57A6DFF", "#E8B762FF", "#9CCDDFFF", "#525052FF"],
    name="myCmap",
    cmap_type="continuous",
)

x = np.linspace(0, 20, 1000)
y = np.sin(x)

plt.scatter(x, y, c=y, cmap=cmap)
plt.colorbar()
plt.show()

linechart example

Going further



Features

  • Add +2500 native palettes to matplotlib and seaborn
  • Load, customise and combine +2500 palettes
  • Create your own palettes

To find out more about using PyPalettes, use this PyPalettes guide.



Chart made with pypalettes

Click on the image to get the associated code!

choropleth map of europe stacked area chart of natural disasters
gapminder bubble chart lollipop chart with colormap and arrow



Acknowledgements

PyPalettes is highly inspired (and relies on for the first one) from

A big thanks to Yan Holtz for:



Contributing

Since the core code of the library is currently quite short and simple, it does not require any major changes. However, if you have a good idea or suggestion, please open an issue.

That said, adding more palettes is an easy way to make pypalettes better! Here’s the best way to get started:

First, open your code editor and navigate to parsers/list_manual_palettes.py. You’ll find a dictionary of manually defined palettes. Add yours at the end with the following elements:

  • "name": the name of your palette
  • "palette": the colors of your palette in the following format: ["['#123456', '#654321', '#162534']"]
  • "source": Where does your palette come from? If you created it, your name or a link to your portfolio is valid!
  • "kind": the type of palette. View examples here
  • "paletteer-kind": just put "unknown"

Then, run:

python parsers/main.py

For a large number of palettes, please open an issue first.