A colorblind-friendly python module that allows color choice for plotting multiple curves
Works only with python
8 colormaps are now available to map 2D fields
Authors: Gaylor Wafflard-Fernandez, Clément Robert
Author-email: gaylor.wafflard@univ-grenoble-alpes.fr
Install with pip
pip install cblind
To import cblind:
import cblind as cb
10 palette functions to plot curves are available for now in the Colorplots class, with the corresponding test plotting functions.
color, linestyle = cb.Colorplots().cblind(nb_of_plots)
from 1 to 12 plots [DISTINCT COLORS]. For more than 12 plots, the linestyle is changed.
cb.test_cblind(nb_of_plots)
color, linestyle = cb.Colorplots().contrast(nb_of_plots)
for less than 4 contrast plots [DISTINCT COLORS]. For more than 12 plots, the linestyle is changed.
cb.test_contrast(nb_of_plots)
color, linestyle = cb.Colorplots().huescale(nb_of_plots, *option)
from 1 to 9 plots [SEQUENTIAL DATA]. With option "blue","bluegreen","green", "gold","brown","rose","purple" for less than 3 plots, otherwise ocherscale.
cb.test_huescale(nb_of_plots, *option)
color, linestyle = cb.Colorplots().rbscale(nb_of_plots)
from 3 to 11 plots [DIVERGING DATA].
cb.test_rbscale(nb_of_plots)
color, linestyle = cb.Colorplots().rainbow(nb_of_plots)
from 4 to 12 plots [RAINBOW SCHEME].
cb.test_rainbow(nb_of_plots)
color, linestyle = cb.Colorplots().extreme_rainbow(nb_of_plots)
from 1 to 34 plots [RAINBOW SCHEME].
cb.test_extreme_rainbow(nb_of_plots)
color, linestyle = cb.Colorplots().solstice(nb_of_plots)
for less than 11 plots [DIVERGING DATA]
cb.test_solstice(nb_of_plots)
color, linestyle = cb.Colorplots().bird(nb_of_plots)
for less than 9 plots [DIVERGING DATA]
cb.test_bird(nb_of_plots)
color, linestyle = cb.Colorplots().pregunta(nb_of_plots)
for less than 9 plots [DIVERGING DATA]
cb.test_pregunta(nb_of_plots)
color, linestyle = cb.Colorplots().monocolor(nb_of_plots, *option)
from 1 to 13 monochromatic plots [MONOCOLOR/PRINTING] with different linestyles. With option "b&w", "blue", "red", "yellow", "green", "purple".
cb.test_monocolor(nb_of_plots, *option)
8 cblind palettes are available for now : "cb.rbscale", "cb.rainbow", "cb.extreme_rainbow", "cb.huescale", "cb.solstice", "cb.bird", "cb.pregunta", "cb.iris", but also all colormaps from matplotlib + "_r" variants for reverse colormaps.
cmap = cb.cbmap(palette, nbin)
The nbin
argument is used to discretize the colormaps.
To test the colormaps, you can try:
cb.test_mapping(palette, nbin)
import numpy as np
import matplotlib.pyplot as plt
data2d = np.repeat(np.linspace(0,1,100),20).reshape(100,20).T
fig, ax = plt.subplots()
im = ax.imshow(data2d, cmap=cb.cbmap("cb.rainbow_r", nbin=10), aspect='auto')
fig.colorbar(im)
plt.show()
cb.mapping(fig,ax,data2d,extent,palette=palette,nbin=nbin)
REFERENCE
Paul Tol. 2012. "Colour Schemes." SRON Technical Note, SRON/EPS/TN/09-002.
https://personal.sron.nl/~pault/data/colourschemes.pdf