Colors module
Make sure you know about
- matplotlib color maps
- Palettable: many beautiful color palettes
Load the color module:
import plottools.colors as c
Color palettes
The color module provides a few color palettes as dictionaries that reference colors by standard color names.
c.color_palettes
is a dictionary referencing all color palettes provided by the module by their name.
For example
colors = c.color_palettes['muted']
colors['red']
returns the red color of the colors_muted
palette. The returned
colors are valid matplotlib colors and can be passed on to the color
,
facecolor
, edgecolor
, etc. arguments of the various matplotlib
plotting functions.
The following sections display the colors and their names of all provided palettes.
Plain RGB colors
c.colors_plain
This palette is provided for completeness. The colors are made up of either full or half saturated RGB values, e.g. red is '#ff0000', green is '#00ff00', and orange is '#ff8000'.
Muted colors
c.colors_muted
This palette extends the colors_henninger
palette.
Vivid colors
c.colors_vivid
Vivid but not plain basic colors for a fresh look.
Tableau
c.colors_tableau
This is matplotlib's tableau palette, the default in newer matplotlib
versions, also known as tab10
.
Color palette by Jörg Henninger
c.colors_henninger
Color pallete of our Scientific Computing script
c.colors_scicomp
Nice red, orange and yellow, but blue and green need some improvement.
Color palette of the corporate design of the University of Tübingen
c.colors_unituebingen
Farbkreis by Johannes Itten, 1961
c.colors_itten
Solarized colors by Ethan Schoonover (from LaTeX xcolor-solarized package)
c.colors_solarized
Google's material color palette (from LaTeX xcolor-material package)
c.colors_material
Color manipulation
Lighter colors
Make colors lighter.
For 40% lightness of blue do
colors = c.color_palettes['muted']
lightblue = c.lighter(colors['blue'], 0.4)
Darker colors
Make colors darker.
For 40% darker blue do
colors = c.color_palettes['muted']
darkblue = c.darker(colors['blue'], 0.4)
Gradient between two colors
Mix two colors.
For 30% transition between blue and orange do
colors = c.color_palettes['muted']
colors = c.color_palettes['muted']
color = c.gradient(colors['blue'], colors['orange'], 0.3)
LaTeX colors
If you want to use in your LaTeX document the same colors as in your plots,
then you can export matplotlib colors using the latex_colors()
function.
Either for single colors:
colors = c.color_palettes['muted']
c.latex_colors(colors['red'], 'red')
writes to the console
\definecolor{red}{rgb}{0.753,0.153,0.090}
or for a whole palette:
c.latex_colors(c.color_palettes['vivid'])
writes to the console
\definecolor{red}{rgb}{0.843,0.063,0.000}
\definecolor{orange}{rgb}{1.000,0.565,0.000}
\definecolor{yellow}{rgb}{1.000,0.969,0.000}
...
Then copy the color definitions into you LaTeX preamble. Do not forget to
load the color
or xcolor
packages before:
\usepackage{xcolor}
You then can use the newly defined colors with the usual commands, like for example:
\textcolor{red}{Some text in my special red.}
Color maps
Generate and register a color map from colors like this:
colors = c.color_palettes['muted']
cmcolors = [colors['red'],
c.lighter(colors['orange'], 0.85),
c.lighter(colors['yellow'], 0.2),
c.lighter(colors['lightblue'], 0.8),
colors['blue']]
cmvalues = [0.0, 0.25, 0.5, 0.8, 1.0]
c.colormap('RYB', cmcolors, cmvalues)
This is just a simple wrapper for
matplotlib.colors.LinearSegmentedColormap
and matplotlib.cm import
register_cmap
.
The new colormap can then be used directly by its name for the cmap
arguments of imshow()
, pcolormesh()
, contourf()
, etc.:
ax.imshow(image, cmap='RYB')
Retrieve a single color from a color map:
jet_red = c.cmap_color('jet', 0.0)
Display colors
For displaying colors and color maps, four functions are provided:
plot_colors()
: plot all colors of a palette and optionally some lighter and darker variants.plot_complementary_colors()
: plot complementary colors of a palette on top of each other.plot_color_comparison()
: plot matching colors of severals palettes on top of each other.plot_colormap()
: plot a color map and its luminance.
These functions are helpfull when creating new palettes. See their documentation for details on how to use them.