from colorspace import qualitative_hcl
= qualitative_hcl()
a 10) a.colors(
['#E16A86',
'#CE7D3B',
'#AA9000',
'#6F9F00',
'#00AA5A',
'#00AD9A',
'#00A6CA',
'#5991E4',
'#B675E0',
'#DD64BE']
Documentation built with Python 3.11.10
, pyp2qmd 0.1.1
and quarto 1.5.57
on GitHub.
The HCL (hue-chroma-luminance) color model is a perceptual color model obtained by using polar coordinates in CIELUV space (i.e., polarLUV), where steps of equal size correspond to approximately equal perceptual changes in color. By taking polar coordinates the resulting three dimensions capture the three perceptual axes very well: hue is the type of color, chroma the colorfulness compared to the corresponding gray, and luminance the brightness. This makes it relatively easy to create balanced palettes through trajectories in this HCL space. In contrast, in the more commonly-used ‘HSV’ (hue-saturation-value) model (a simple transformation of ‘RGB’), the three axes are confounded so that luminance changes along with the hue leading to very unbalanced palettes.
qualitative_hcl
distinguishes the underlying categories by a sequence of hues while keeping both chroma and luminance constant to give each color in the resulting palette the same perceptual weight. Thus, h
should be a pair of hues (or equivalently h1
and h2
can be used) with the starting and ending hue of the palette. Then, an equidistant sequence between these hues is employed, by default spanning the full color wheel (i.e, the full 360 degrees). Chroma c
(or equivalently c1
) and luminance l
(or equivalently l1
) are constants. If h
is str it will overwrite the palette
argument. In this case, pre-specified palette settings will be loaded but are allowed to be overwritten by the user. At any time the user can overwrite any of the settings. If h
is str it will overwrite the palette
argument. In this case, pre-specified palette settings will be loaded but are allowed to be overwritten by the user. At any time the user can overwrite any of the settings.
By default, qualitative_hcl
returns an object of class hclpalette
which allows to draw a number of colors (n
) uniformly distributed around the circle ([0, 360 * (n - 1) / n]
) controlled via the h
(Hue) argument. As the number of colors is not yet defined, the upper hue limit (h[1]
, h2
) is defined via lambda function.
See also: sequential_hcl, diverging_hcl, divergingx_hcl, rainbow_hcl, heat_hcl, terrain_hcl, diverging_hsv, and rainbow.
qualitative_hcl(h=[0, <function qualitative_hcl.<lambda>>],
c=80, l=60, fixup=True,
palette=None, rev=False, **kwargs)
h
list, str
str
) or a list of two numeric values (float/int) defining the hue on the two ends of the palette. If str, it acts as the input argument palette
. Elements in list can also be lambda functions with one single input argument n
(number of colors; see default value).
c
int, float
l
int, float
fixup
bool
palette
None, str
rev
bool
False
.
**kwargs
h1
, h2
, c1
, l1
.
qualitative_hcl
: Initialize new object. Raises exceptions if the parameters are misspecified. Note that the object is callable, the default object call can be used to return hex colors (identical to the .colors()
method), see examples.
qualitative_hcl.cmap(n=256, name='custom_hcl_cmap')
qualitative_hcl.colors(n=11, fixup=None, alpha=None, **kwargs)
qualitative_hcl.get(key)
qualitative_hcl.hclplot(n=7, **kwargs)
qualitative_hcl.name()
qualitative_hcl.show_settings()
qualitative_hcl.specplot(n=180, *args, **kwargs)
qualitative_hcl.swatchplot(n=7, **kwargs)
['#E16A86',
'#CE7D3B',
'#AA9000',
'#6F9F00',
'#00AA5A',
'#00AD9A',
'#00A6CA',
'#5991E4',
'#B675E0',
'#DD64BE']
['#ABB065',
'#B8AC65',
'#C4A86A',
'#CFA373',
'#D79F7F',
'#DE9B8C',
'#E2979A',
'#E495A8',
'#E393B6',
'#E093C3']
['#ABB065',
'#B8AC65',
'#C4A86A',
'#CFA373',
'#D79F7F',
'#DE9B8C',
'#E2979A',
'#E495A8',
'#E393B6',
'#E093C3']
TypeError
: If h
is neither str nor list of length 2.
TypeError
: If h
is list of length 2, the elements must be int, float, or lambda functions.
ValueError
: If c
and/or l
contain unexpected values.
ValueError
: If h
is str or palette
is set, but a pre-defined palette with this name does not exist.