PerceptuallyUniformColormap

class PerceptuallyUniformColormap(name, segmentdata, N=None, space=None, clip=True, gamma=None, gamma1=None, gamma2=None, **kwargs)[source]

Bases: proplot.styletools.LinearSegmentedColormap, proplot.styletools._Colormap

Similar to LinearSegmentedColormap, but instead of varying the RGB channels, we vary hue, saturation, and luminance in either the HCL colorspace or the HSL or HPL scalings of HCL.

Parameters
  • name (str) – The colormap name.

  • segmentdata (dict-like) – Mapping containing the keys 'hue', 'saturation', and 'luminance'. The key values can be callable functions that return channel values given a colormap index, or lists containing any of the following channel specifiers:

    1. Numbers, within the range 0-360 for hue and 0-100 for saturation and luminance.

    2. Color string names or hex tags, in which case the channel value for that color is looked up.

    See LinearSegmentedColormap for a more detailed explanation.

  • N (int, optional) – Number of points in the colormap lookup table. Default is rc[‘image.lut’] = 256.

  • space ({‘hsl’, ‘hpl’, ‘hcl’}, optional) – The hue, saturation, luminance-style colorspace to use for interpreting the channels. See this page for a description.

  • clip (bool, optional) – Whether to “clip” impossible colors, i.e. truncate HCL colors with RGB channels with values >1, or mask them out as gray.

  • cyclic (bool, optional) – Whether the colormap is cyclic. If True, this changes how the leftmost and rightmost color levels are selected, and extend can only be 'neither' (a warning will be issued otherwise).

  • gamma (float, optional) – Sets gamma1 and gamma2 to this identical value.

  • gamma1 (float, optional) – If >1, makes low saturation colors more prominent. If <1, makes high saturation colors more prominent. Similar to the HCLWizard option. See make_mapping_array for details.

  • gamma2 (float, optional) – If >1, makes high luminance colors more prominent. If <1, makes low luminance colors more prominent. Similar to the HCLWizard option. See make_mapping_array for details.

  • **kwargs – Passed to LinearSegmentedColormap.

Example

The following generates a PerceptuallyUniformColormap from a segmentdata dictionary that uses color names for the hue data, instead of channel values between 0 and 360.

>>> import proplot as plot
>>> data = {
...     'hue': [[0, 'red', 'red'], [1, 'blue', 'blue']],
...     'saturation': [[0, 100, 100], [1, 100, 100]],
...     'luminance': [[0, 100, 100], [1, 20, 20]],
... }
>>> cmap = plot.PerceptuallyUniformColormap(data)

Methods Summary

from_color(name, color[, fade, space])

Return a monochromatic “sequential” colormap that blends from white or near-white to the input color.

from_hsl(name[, hue, saturation, luminance, …])

Make a PerceptuallyUniformColormap by specifying the hue, saturation, and luminance transitions individually.

from_list(name, colors[, ratios])

Make a PerceptuallyUniformColormap from a list of colors.

set_gamma([gamma, gamma1, gamma2])

Modify the gamma value(s) and refresh the lookup table.

updated([name, segmentdata, N, alpha, …])

Return a new colormap with relevant properties copied from this one if they were not provided as keyword arguments.