Cubehelix
The Cubehelix color space is not registered in Color
by default
Properties
Name: cubehelix
White Point: D65 / 2˚
Coordinates:
Name | Range* |
---|---|
h | [0, 360) |
s | [0, 4.614] |
l | [0, 1] |
* The maximum saturation represents how high saturation can go within the sRGB gamut, not that all colors with that saturation will be valid in the sRGB gamut. As seen in the 3D rendering, while the coordinates are cylindrical, the shape of the space within a given gamut may not be a perfect cylinder.
Figure 1. The sRGB gamut represented within the Cubehelix color space.
Cubehelix is a color schemes created by Dave Green. It was originally created for the display of astronomical intensity images. While many may think of the cubehelix scheme as the default one described in the original paper, it is not really one color scheme, but a method to generate various "cubehelix" color schemes. The name comes from the way the color scheme spirals through the sRGB color space.
Mike Bostock of Observable and D3 fame, along with Jason Davies, took the color scheme and created a cylindrical color space with it. This is the color space that is implemented in ColorAide and can be used directly to generate various cubehelix color schemes.
>>> c1 = Color('cubehelix', [300, 0.5, 0])
>>> c2 = Color('cubehelix', [-240, 0.5, 1])
>>> Color.discrete([c1, c2], steps=16, space='cubehelix', hue='specified')
<coloraide.interpolate.linear.InterpolatorLinear object at 0x1064359a0>
>>> Color.interpolate([c1, c2], space='cubehelix', hue='specified')
<coloraide.interpolate.linear.InterpolatorLinear object at 0x10650a300>
Viewing the interpolation in 3D, we can see the spiraling of colors that gave the color scheme the name Cubehelix.
Figure 2. The default cubehelix color scheme in 3D.
Channel Aliases
Channels | Aliases |
---|---|
h | hue |
s | saturation |
l | lightness |
Input/Output
The Cubehelix space is not currently supported in the CSS spec, the parsed input and string output formats use the color()
function format using the custom name --cubehelix
:
color(--cubehelix h s l / a) // Color function
The string representation of the color object and the default string output use the color(--cubehelix h s l / a)
form.
>>> Color("cubehelix", [351.81, 1.9489, 0.3])
color(--cubehelix 351.81 1.9489 0.3 / 1)
>>> Color("cubehelix", [36.577, 1.7357, 0.68176]).to_string()
'color(--cubehelix 36.577 1.7357 0.68176)'
Registering
from coloraide import Color as Base
from coloraide.spaces.cubehelix import Cubehelix
class Color(Base): ...
Color.register(Cubehelix())
Generating Color Schemes
Cubehelix color schemes can be easily generated by interpolating within the cubehelix color space. Below is the default color scheme as described in the original paper.
The original paper described an algorithm for generating cubehelix color schemes and highlighted four parameters that are used to control the output. The cubehelix color space incorporates this logic within itself to create a color space and can be used directly to generate the same color schemes via simple interpolation. The exact same parameters can be applied to the interpolation process (with some minor translations) to give the same output.
To explain how the color schemes can programmatically be generated, first we'll cover the four parameters and how they relate to our cylindrical color space and the interpolation process. Lastly, we'll show the logic with them all working together to create color schemes.
It should be noted that we assume interpolation is being performed with the specified
hue logic as it is needed to handle hue rotations that are greater 360˚.
Cubehelix Scheme Options
- start
-
The 'start' color. This is the direction of the predominant color deviation from black at the start of the color scheme with R=1, G=2, B=3, etc. In the context of the Cubehelix cylindrical space, this is translated to an actual hue as shown below.
\[ start\_hue = ((start - 1) * 120) \bmod 360 \]
- rotation
-
Number of rotations through the hues from the start (i.e. black) to the end (i.e. white). In the context of the Cubehelix cylindrical space, this is essentially used to define the ending hue within a
specified
interpolation. Assuming the starting hue asstart_hue
, rotation is applied as shown below.\[ end\_hue = start\_hue + (360 * rotation) \]
- hue
-
Named "hue" in the paper, this option actually controls how saturated the color of all hues are. If this parameter is zero, the color scheme is purely grayscale. The "hue" parameter is applied to the saturation component of both the start and end color after dividing it by 2.
\[ saturation = hue / 2 \]
- gamma
-
A 'factor' that can be used to emphasize low or high intensity values. Essentially places an easing function on the lightness. If
t
is the progress of the interpolation between the start and end color, and gamma isy
, then an easing function can be applied to interpolation progress of the lightness component as shown below.\[ t\_new = t^y \]
With a clear understanding of the four parameters, we can then define a function that accepts the parameters and constructs an interpolation that yields the desired color scheme.
>>> from coloraide import algebra as alg
>>> def cubehelix_scheme(start, rotation, hue, gamma, out_space='srgb', domain=(0, 1)):
... """Generate a Cubehelix scheme."""
...
... start_hue = ((start - 1) * 120) % 360
... end_hue = start_hue + (360 * rotation)
... saturation = hue / 2
... begin = Color('cubehelix', [start_hue, saturation, 0])
... end = Color('cubehelix', [end_hue, saturation, 1])
... return Color.interpolate(
... [begin, end],
... space='cubehelix',
... hue='specified',
... progress={'l': lambda t, y=gamma: t ** y} if gamma != 1 else None,
... domain=domain,
... out_space=out_space
... )
...
>>> scheme = cubehelix_scheme(0.5, -1.5, 1, 1)
>>> Steps([scheme(i).clip('srgb') for i in alg.linspace(0, 1, 100, endpoint=True)])
[color(srgb 0 0 0 / 1), color(srgb 0.01693 0.00556 0.01582 / 1), color(srgb 0.03257 0.01153 0.03299 / 1), color(srgb 0.0468 0.018 0.05128 / 1), color(srgb 0.0595 0.02509 0.07047 / 1), color(srgb 0.07062 0.03286 0.0903 / 1), color(srgb 0.0801 0.04139 0.11053 / 1), color(srgb 0.08794 0.05072 0.13088 / 1), color(srgb 0.09417 0.06091 0.15111 / 1), color(srgb 0.09882 0.07196 0.17096 / 1), color(srgb 0.10199 0.08389 0.19018 / 1), color(srgb 0.10377 0.09668 0.20854 / 1), color(srgb 0.10431 0.11031 0.22581 / 1), color(srgb 0.10375 0.12473 0.24181 / 1), color(srgb 0.10227 0.13989 0.25634 / 1), color(srgb 0.10006 0.15573 0.26925 / 1), color(srgb 0.09732 0.17216 0.28042 / 1), color(srgb 0.09428 0.18908 0.28975 / 1), color(srgb 0.09116 0.20641 0.29717 / 1), color(srgb 0.08818 0.22402 0.30264 / 1), color(srgb 0.08558 0.24181 0.30616 / 1), color(srgb 0.08357 0.25966 0.30775 / 1), color(srgb 0.08238 0.27744 0.30747 / 1), color(srgb 0.08221 0.29503 0.30541 / 1), color(srgb 0.08326 0.31231 0.30168 / 1), color(srgb 0.08571 0.32916 0.29642 / 1), color(srgb 0.08972 0.34548 0.28981 / 1), color(srgb 0.09542 0.36115 0.28204 / 1), color(srgb 0.10294 0.37607 0.27331 / 1), color(srgb 0.11237 0.39016 0.26385 / 1), color(srgb 0.12377 0.40334 0.25391 / 1), color(srgb 0.13718 0.41553 0.24374 / 1), color(srgb 0.15261 0.4267 0.23359 / 1), color(srgb 0.17004 0.4368 0.22373 / 1), color(srgb 0.18943 0.4458 0.21441 / 1), color(srgb 0.21069 0.45369 0.20589 / 1), color(srgb 0.23374 0.46049 0.19843 / 1), color(srgb 0.25844 0.4662 0.19224 / 1), color(srgb 0.28465 0.47087 0.18757 / 1), color(srgb 0.31219 0.47454 0.1846 / 1), color(srgb 0.34088 0.47727 0.18352 / 1), color(srgb 0.37051 0.47914 0.18449 / 1), color(srgb 0.40086 0.48024 0.18764 / 1), color(srgb 0.4317 0.48067 0.19308 / 1), color(srgb 0.46279 0.48053 0.20087 / 1), color(srgb 0.49389 0.47993 0.21107 / 1), color(srgb 0.52476 0.479 0.2237 / 1), color(srgb 0.55515 0.47787 0.23872 / 1), color(srgb 0.58483 0.47666 0.25611 / 1), color(srgb 0.61356 0.4755 0.27577 / 1), color(srgb 0.64114 0.47453 0.2976 / 1), color(srgb 0.66737 0.47386 0.32148 / 1), color(srgb 0.69205 0.47363 0.34722 / 1), color(srgb 0.71503 0.47395 0.37466 / 1), color(srgb 0.73617 0.47493 0.40358 / 1), color(srgb 0.75534 0.47668 0.43377 / 1), color(srgb 0.77245 0.47928 0.46497 / 1), color(srgb 0.78745 0.48281 0.49695 / 1), color(srgb 0.80029 0.48735 0.52943 / 1), color(srgb 0.81096 0.49294 0.56216 / 1), color(srgb 0.81948 0.49963 0.59485 / 1), color(srgb 0.8259 0.50744 0.62726 / 1), color(srgb 0.8303 0.51639 0.65912 / 1), color(srgb 0.83277 0.52646 0.69018 / 1), color(srgb 0.83343 0.53765 0.7202 / 1), color(srgb 0.83244 0.54991 0.74897 / 1), color(srgb 0.82996 0.5632 0.77627 / 1), color(srgb 0.82618 0.57746 0.80194 / 1), color(srgb 0.82129 0.59261 0.82581 / 1), color(srgb 0.81553 0.60857 0.84776 / 1), color(srgb 0.8091 0.62525 0.86768 / 1), color(srgb 0.80224 0.64253 0.8855 / 1), color(srgb 0.79519 0.66031 0.90119 / 1), color(srgb 0.78817 0.67848 0.91472 / 1), color(srgb 0.78142 0.69691 0.92613 / 1), color(srgb 0.77516 0.71547 0.93547 / 1), color(srgb 0.7696 0.73405 0.94282 / 1), color(srgb 0.76493 0.75252 0.94828 / 1), color(srgb 0.76136 0.77077 0.952 / 1), color(srgb 0.75902 0.78868 0.95413 / 1), color(srgb 0.75808 0.80614 0.95487 / 1), color(srgb 0.75864 0.82306 0.95442 / 1), color(srgb 0.76079 0.83935 0.95299 / 1), color(srgb 0.76462 0.85493 0.95083 / 1), color(srgb 0.77014 0.86974 0.94817 / 1), color(srgb 0.77737 0.88372 0.94527 / 1), color(srgb 0.78629 0.89684 0.94238 / 1), color(srgb 0.79685 0.90909 0.93974 / 1), color(srgb 0.80898 0.92044 0.9376 / 1), color(srgb 0.82256 0.93092 0.9362 / 1), color(srgb 0.83747 0.94054 0.93576 / 1), color(srgb 0.85355 0.94935 0.93647 / 1), color(srgb 0.87062 0.9574 0.93852 / 1), color(srgb 0.8885 0.96477 0.94207 / 1), color(srgb 0.90697 0.97154 0.94724 / 1), color(srgb 0.9258 0.9778 0.95415 / 1), color(srgb 0.94476 0.98365 0.96286 / 1), color(srgb 0.96361 0.98922 0.97341 / 1), color(srgb 0.9821 0.99463 0.9858 / 1), color(srgb 1 1 1 / 1)]
>>> scheme = cubehelix_scheme(0.5, -1.5, 1.5, 1)
>>> Steps([scheme(i).clip('srgb') for i in alg.linspace(0, 1, 100, endpoint=True)])
[color(srgb 0 0 0 / 1), color(srgb 0.02034 0.00329 0.01868 / 1), color(srgb 0.03876 0.00719 0.03938 / 1), color(srgb 0.05505 0.01186 0.06177 / 1), color(srgb 0.06905 0.01743 0.0855 / 1), color(srgb 0.08067 0.02404 0.1102 / 1), color(srgb 0.08985 0.03178 0.13549 / 1), color(srgb 0.09656 0.04073 0.16097 / 1), color(srgb 0.10085 0.05096 0.18627 / 1), color(srgb 0.10278 0.06249 0.21099 / 1), color(srgb 0.10248 0.07533 0.23477 / 1), color(srgb 0.1001 0.08946 0.25725 / 1), color(srgb 0.09586 0.10485 0.27812 / 1), color(srgb 0.08996 0.12144 0.29705 / 1), color(srgb 0.08269 0.13913 0.3138 / 1), color(srgb 0.07433 0.15784 0.32812 / 1), color(srgb 0.06518 0.17743 0.33982 / 1), color(srgb 0.05557 0.19777 0.34877 / 1), color(srgb 0.04583 0.21871 0.35485 / 1), color(srgb 0.03631 0.24008 0.358 / 1), color(srgb 0.02735 0.26171 0.35823 / 1), color(srgb 0.01929 0.28343 0.35557 / 1), color(srgb 0.01245 0.30504 0.3501 / 1), color(srgb 0.00715 0.32638 0.34195 / 1), color(srgb 0.00367 0.34725 0.33131 / 1), color(srgb 0.0023 0.36748 0.31837 / 1), color(srgb 0.00326 0.3869 0.30341 / 1), color(srgb 0.00677 0.40536 0.28669 / 1), color(srgb 0.013 0.42269 0.26855 / 1), color(srgb 0.0221 0.43877 0.24931 / 1), color(srgb 0.03415 0.45349 0.22935 / 1), color(srgb 0.04921 0.46673 0.20904 / 1), color(srgb 0.0673 0.47844 0.18877 / 1), color(srgb 0.0884 0.48853 0.16892 / 1), color(srgb 0.11242 0.49698 0.1499 / 1), color(srgb 0.13927 0.50377 0.13207 / 1), color(srgb 0.16879 0.50891 0.11582 / 1), color(srgb 0.20079 0.51243 0.1015 / 1), color(srgb 0.23505 0.51438 0.08943 / 1), color(srgb 0.27131 0.51484 0.07993 / 1), color(srgb 0.3093 0.51389 0.07326 / 1), color(srgb 0.34869 0.51165 0.06967 / 1), color(srgb 0.38917 0.50825 0.06934 / 1), color(srgb 0.43038 0.50383 0.07244 / 1), color(srgb 0.47196 0.49857 0.07909 / 1), color(srgb 0.51357 0.49262 0.08934 / 1), color(srgb 0.55482 0.48618 0.10322 / 1), color(srgb 0.59535 0.47943 0.12071 / 1), color(srgb 0.63481 0.47256 0.14174 / 1), color(srgb 0.67287 0.46578 0.16618 / 1), color(srgb 0.70919 0.45927 0.19388 / 1), color(srgb 0.74348 0.45322 0.22464 / 1), color(srgb 0.77545 0.44782 0.25821 / 1), color(srgb 0.80487 0.44325 0.29431 / 1), color(srgb 0.83152 0.43967 0.33265 / 1), color(srgb 0.85523 0.43724 0.37288 / 1), color(srgb 0.87585 0.43609 0.41463 / 1), color(srgb 0.8933 0.43634 0.45754 / 1), color(srgb 0.9075 0.43809 0.50122 / 1), color(srgb 0.91846 0.44143 0.54525 / 1), color(srgb 0.92619 0.44642 0.58925 / 1), color(srgb 0.93078 0.45308 0.63281 / 1), color(srgb 0.93232 0.46145 0.67555 / 1), color(srgb 0.93097 0.47151 0.71709 / 1), color(srgb 0.92691 0.48324 0.75707 / 1), color(srgb 0.92037 0.49658 0.79517 / 1), color(srgb 0.9116 0.51147 0.83108 / 1), color(srgb 0.90088 0.52781 0.86453 / 1), color(srgb 0.88851 0.54548 0.89528 / 1), color(srgb 0.87481 0.56438 0.92315 / 1), color(srgb 0.86012 0.58434 0.94798 / 1), color(srgb 0.84478 0.60521 0.96966 / 1), color(srgb 0.82915 0.62684 0.98814 / 1), color(srgb 0.81357 0.64903 1 / 1), color(srgb 0.79839 0.67162 1 / 1), color(srgb 0.78395 0.69442 1 / 1), color(srgb 0.77056 0.71723 1 / 1), color(srgb 0.75851 0.73989 1 / 1), color(srgb 0.74809 0.76221 1 / 1), color(srgb 0.73954 0.78402 1 / 1), color(srgb 0.73307 0.80517 1 / 1), color(srgb 0.72886 0.8255 1 / 1), color(srgb 0.72705 0.84488 1 / 1), color(srgb 0.72773 0.8632 1 / 1), color(srgb 0.73096 0.88036 0.99801 / 1), color(srgb 0.73676 0.89629 0.98861 / 1), color(srgb 0.74509 0.91092 0.97922 / 1), color(srgb 0.75589 0.92423 0.97022 / 1), color(srgb 0.76902 0.93622 0.96196 / 1), color(srgb 0.78434 0.94688 0.95481 / 1), color(srgb 0.80165 0.95626 0.94909 / 1), color(srgb 0.82072 0.96443 0.9451 / 1), color(srgb 0.84129 0.97146 0.94313 / 1), color(srgb 0.86305 0.97746 0.9434 / 1), color(srgb 0.8857 0.98256 0.94612 / 1), color(srgb 0.9089 0.9869 0.95143 / 1), color(srgb 0.93229 0.99063 0.95945 / 1), color(srgb 0.95551 0.99393 0.97022 / 1), color(srgb 0.9782 0.99699 0.98375 / 1), color(srgb 1 1 1 / 1)]
>>> scheme = cubehelix_scheme(0.5, -1, 1, 1)
>>> Steps([scheme(i).clip('srgb') for i in alg.linspace(0, 1, 100, endpoint=True)])
[color(srgb 0 0 0 / 1), color(srgb 0.01711 0.00552 0.01556 / 1), color(srgb 0.03335 0.01131 0.03203 / 1), color(srgb 0.04867 0.01743 0.04929 / 1), color(srgb 0.06301 0.02391 0.06723 / 1), color(srgb 0.07635 0.03079 0.08576 / 1), color(srgb 0.08865 0.03811 0.10475 / 1), color(srgb 0.0999 0.04591 0.1241 / 1), color(srgb 0.11008 0.0542 0.14368 / 1), color(srgb 0.11921 0.06301 0.16337 / 1), color(srgb 0.12728 0.07235 0.18307 / 1), color(srgb 0.13433 0.08224 0.20266 / 1), color(srgb 0.14037 0.09267 0.22203 / 1), color(srgb 0.14545 0.10366 0.24107 / 1), color(srgb 0.14961 0.1152 0.25968 / 1), color(srgb 0.1529 0.12727 0.27776 / 1), color(srgb 0.15539 0.13988 0.29521 / 1), color(srgb 0.15713 0.15299 0.31195 / 1), color(srgb 0.15821 0.16659 0.3279 / 1), color(srgb 0.1587 0.18065 0.34299 / 1), color(srgb 0.15868 0.19514 0.35714 / 1), color(srgb 0.15824 0.21003 0.37031 / 1), color(srgb 0.15746 0.22528 0.38244 / 1), color(srgb 0.15644 0.24086 0.3935 / 1), color(srgb 0.15528 0.25671 0.40345 / 1), color(srgb 0.15406 0.27281 0.41228 / 1), color(srgb 0.15289 0.28909 0.41998 / 1), color(srgb 0.15185 0.30552 0.42653 / 1), color(srgb 0.15104 0.32204 0.43195 / 1), color(srgb 0.15055 0.3386 0.43625 / 1), color(srgb 0.15047 0.35516 0.43947 / 1), color(srgb 0.15089 0.37167 0.44162 / 1), color(srgb 0.15188 0.38807 0.44276 / 1), color(srgb 0.15353 0.40432 0.44294 / 1), color(srgb 0.1559 0.42037 0.44221 / 1), color(srgb 0.15907 0.43618 0.44064 / 1), color(srgb 0.16309 0.45169 0.4383 / 1), color(srgb 0.16801 0.46687 0.43526 / 1), color(srgb 0.17389 0.48168 0.43162 / 1), color(srgb 0.18076 0.49609 0.42746 / 1), color(srgb 0.18866 0.51005 0.42286 / 1), color(srgb 0.19761 0.52354 0.41794 / 1), color(srgb 0.20762 0.53653 0.41278 / 1), color(srgb 0.21871 0.54899 0.40748 / 1), color(srgb 0.23088 0.56092 0.40215 / 1), color(srgb 0.24411 0.57229 0.39688 / 1), color(srgb 0.2584 0.5831 0.39179 / 1), color(srgb 0.27372 0.59333 0.38696 / 1), color(srgb 0.29004 0.60299 0.38249 / 1), color(srgb 0.30731 0.61207 0.37849 / 1), color(srgb 0.3255 0.62058 0.37504 / 1), color(srgb 0.34456 0.62854 0.37223 / 1), color(srgb 0.36442 0.63595 0.37014 / 1), color(srgb 0.38501 0.64284 0.36886 / 1), color(srgb 0.40628 0.64922 0.36844 / 1), color(srgb 0.42814 0.65513 0.36897 / 1), color(srgb 0.45051 0.66059 0.37049 / 1), color(srgb 0.47331 0.66564 0.37305 / 1), color(srgb 0.49646 0.67031 0.37671 / 1), color(srgb 0.51986 0.67464 0.38148 / 1), color(srgb 0.54343 0.67867 0.38741 / 1), color(srgb 0.56708 0.68245 0.3945 / 1), color(srgb 0.5907 0.68601 0.40277 / 1), color(srgb 0.61421 0.68942 0.41221 / 1), color(srgb 0.63752 0.69271 0.42282 / 1), color(srgb 0.66054 0.69593 0.43458 / 1), color(srgb 0.68318 0.69914 0.44745 / 1), color(srgb 0.70536 0.70238 0.46141 / 1), color(srgb 0.72699 0.70571 0.47641 / 1), color(srgb 0.74801 0.70916 0.49239 / 1), color(srgb 0.76834 0.71279 0.5093 / 1), color(srgb 0.78791 0.71665 0.52707 / 1), color(srgb 0.80667 0.72077 0.54563 / 1), color(srgb 0.82456 0.7252 0.56488 / 1), color(srgb 0.84154 0.72998 0.58476 / 1), color(srgb 0.85756 0.73515 0.60517 / 1), color(srgb 0.87261 0.74074 0.626 / 1), color(srgb 0.88665 0.74677 0.64717 / 1), color(srgb 0.89967 0.75328 0.66856 / 1), color(srgb 0.91167 0.76029 0.69008 / 1), color(srgb 0.92264 0.76781 0.71161 / 1), color(srgb 0.93261 0.77587 0.73306 / 1), color(srgb 0.94158 0.78446 0.75431 / 1), color(srgb 0.9496 0.7936 0.77526 / 1), color(srgb 0.95669 0.80329 0.7958 / 1), color(srgb 0.96291 0.81351 0.81584 / 1), color(srgb 0.9683 0.82427 0.83528 / 1), color(srgb 0.97293 0.83554 0.85401 / 1), color(srgb 0.97686 0.84731 0.87197 / 1), color(srgb 0.98018 0.85956 0.88906 / 1), color(srgb 0.98297 0.87225 0.90521 / 1), color(srgb 0.98531 0.88536 0.92035 / 1), color(srgb 0.98729 0.89884 0.93443 / 1), color(srgb 0.98902 0.91267 0.94739 / 1), color(srgb 0.9906 0.92679 0.95918 / 1), color(srgb 0.99214 0.94115 0.96979 / 1), color(srgb 0.99374 0.95571 0.97918 / 1), color(srgb 0.9955 0.97041 0.98734 / 1), color(srgb 0.99755 0.98519 0.99428 / 1), color(srgb 1 1 1 / 1)]
>>> scheme = cubehelix_scheme(1.5, -1.5, 1, 1)
>>> Steps([scheme(i).clip('srgb') for i in alg.linspace(0, 1, 100, endpoint=True)])
[color(srgb 0 0 0 / 1), color(srgb 0.01169 0.01112 0.00028 / 1), color(srgb 0.02499 0.02134 0.00103 / 1), color(srgb 0.03978 0.03067 0.00249 / 1), color(srgb 0.05592 0.03913 0.0049 / 1), color(srgb 0.07326 0.04677 0.00846 / 1), color(srgb 0.0916 0.05365 0.01336 / 1), color(srgb 0.11075 0.05985 0.01976 / 1), color(srgb 0.13049 0.06543 0.02778 / 1), color(srgb 0.15061 0.07051 0.03752 / 1), color(srgb 0.17086 0.07518 0.04905 / 1), color(srgb 0.19102 0.07956 0.0624 / 1), color(srgb 0.21087 0.08376 0.07756 / 1), color(srgb 0.23017 0.08791 0.09451 / 1), color(srgb 0.24872 0.09212 0.11318 / 1), color(srgb 0.2663 0.09651 0.13347 / 1), color(srgb 0.28274 0.10121 0.15526 / 1), color(srgb 0.29785 0.10634 0.17839 / 1), color(srgb 0.3115 0.11199 0.2027 / 1), color(srgb 0.32355 0.11827 0.22799 / 1), color(srgb 0.3339 0.12527 0.25403 / 1), color(srgb 0.34247 0.13307 0.28061 / 1), color(srgb 0.34923 0.14175 0.30747 / 1), color(srgb 0.35414 0.15136 0.33438 / 1), color(srgb 0.35721 0.16194 0.36107 / 1), color(srgb 0.35848 0.17352 0.38729 / 1), color(srgb 0.35802 0.18612 0.41279 / 1), color(srgb 0.35592 0.19974 0.43733 / 1), color(srgb 0.35228 0.21435 0.46068 / 1), color(srgb 0.34726 0.22994 0.48261 / 1), color(srgb 0.34101 0.24645 0.50294 / 1), color(srgb 0.33372 0.26382 0.52147 / 1), color(srgb 0.32559 0.28198 0.53805 / 1), color(srgb 0.31682 0.30086 0.55255 / 1), color(srgb 0.30765 0.32035 0.56486 / 1), color(srgb 0.2983 0.34034 0.57492 / 1), color(srgb 0.28903 0.36074 0.58266 / 1), color(srgb 0.28005 0.38141 0.58809 / 1), color(srgb 0.27162 0.40224 0.59121 / 1), color(srgb 0.26396 0.42309 0.59207 / 1), color(srgb 0.2573 0.44385 0.59075 / 1), color(srgb 0.25185 0.46437 0.58736 / 1), color(srgb 0.24781 0.48454 0.58204 / 1), color(srgb 0.24536 0.50423 0.57493 / 1), color(srgb 0.24466 0.52332 0.56623 / 1), color(srgb 0.24586 0.54171 0.55615 / 1), color(srgb 0.24906 0.5593 0.5449 / 1), color(srgb 0.25437 0.57599 0.53274 / 1), color(srgb 0.26183 0.59171 0.51991 / 1), color(srgb 0.27149 0.60638 0.50668 / 1), color(srgb 0.28336 0.61996 0.49332 / 1), color(srgb 0.29742 0.6324 0.48009 / 1), color(srgb 0.31361 0.64368 0.46726 / 1), color(srgb 0.33186 0.65379 0.4551 / 1), color(srgb 0.35207 0.66273 0.44385 / 1), color(srgb 0.37412 0.67052 0.43377 / 1), color(srgb 0.39785 0.67719 0.42507 / 1), color(srgb 0.42309 0.6828 0.41796 / 1), color(srgb 0.44966 0.68741 0.41264 / 1), color(srgb 0.47734 0.69108 0.40925 / 1), color(srgb 0.50593 0.69392 0.40793 / 1), color(srgb 0.53518 0.696 0.40879 / 1), color(srgb 0.56487 0.69744 0.41191 / 1), color(srgb 0.59475 0.69836 0.41734 / 1), color(srgb 0.62458 0.69886 0.42508 / 1), color(srgb 0.65414 0.69908 0.43514 / 1), color(srgb 0.68318 0.69914 0.44745 / 1), color(srgb 0.71148 0.69917 0.46195 / 1), color(srgb 0.73884 0.69928 0.47853 / 1), color(srgb 0.76507 0.69961 0.49706 / 1), color(srgb 0.78998 0.70028 0.51739 / 1), color(srgb 0.81342 0.70139 0.53932 / 1), color(srgb 0.83526 0.70305 0.56267 / 1), color(srgb 0.85539 0.70536 0.58721 / 1), color(srgb 0.87373 0.7084 0.61271 / 1), color(srgb 0.89023 0.71224 0.63893 / 1), color(srgb 0.90486 0.71695 0.66562 / 1), color(srgb 0.91762 0.72256 0.69253 / 1), color(srgb 0.92855 0.72912 0.71939 / 1), color(srgb 0.93769 0.73664 0.74597 / 1), color(srgb 0.94514 0.74511 0.77201 / 1), color(srgb 0.95101 0.75454 0.7973 / 1), color(srgb 0.95542 0.76488 0.82161 / 1), color(srgb 0.95855 0.7761 0.84474 / 1), color(srgb 0.96055 0.78814 0.86653 / 1), color(srgb 0.96164 0.80092 0.88682 / 1), color(srgb 0.962 0.81438 0.90549 / 1), color(srgb 0.96187 0.8284 0.92244 / 1), color(srgb 0.96146 0.8429 0.9376 / 1), color(srgb 0.96101 0.85777 0.95095 / 1), color(srgb 0.96074 0.87287 0.96248 / 1), color(srgb 0.96089 0.8881 0.97222 / 1), color(srgb 0.96166 0.90334 0.98024 / 1), color(srgb 0.96327 0.91844 0.98664 / 1), color(srgb 0.96592 0.93331 0.99154 / 1), color(srgb 0.96977 0.9478 0.9951 / 1), color(srgb 0.97498 0.96182 0.99751 / 1), color(srgb 0.98169 0.97526 0.99897 / 1), color(srgb 0.99001 0.98801 0.99972 / 1), color(srgb 1 1 1 / 1)]
While this shows a direct translation of the paper's algorithm and parameters to the cubehelix color space via interpolation, a more intuitive approach may be to simply accept a starting hue, number of rotations, saturation, and gamma.
>>> from coloraide import algebra as alg
>>> def cubehelix_scheme(start_hue, rotation, saturation, gamma, out_space='srgb', domain=(0, 1)):
... """Generate a Cubehelix scheme."""
...
... begin = Color('cubehelix', [start_hue, saturation, 0])
... end = Color('cubehelix', [start_hue + (360 * rotation), saturation, 1])
... return Color.interpolate(
... [begin, end],
... space='cubehelix',
... hue='specified',
... progress={'l': lambda t, y=gamma: t ** y} if gamma != 1 else None,
... domain=domain,
... out_space=out_space
... )
...
>>> scheme = cubehelix_scheme(300, -1.5, 0.5, 1)
>>> Steps([scheme(i).clip('srgb') for i in alg.linspace(0, 1, 100, endpoint=True)])
[color(srgb 0 0 0 / 1), color(srgb 0.01693 0.00556 0.01582 / 1), color(srgb 0.03257 0.01153 0.03299 / 1), color(srgb 0.0468 0.018 0.05128 / 1), color(srgb 0.0595 0.02509 0.07047 / 1), color(srgb 0.07062 0.03286 0.0903 / 1), color(srgb 0.0801 0.04139 0.11053 / 1), color(srgb 0.08794 0.05072 0.13088 / 1), color(srgb 0.09417 0.06091 0.15111 / 1), color(srgb 0.09882 0.07196 0.17096 / 1), color(srgb 0.10199 0.08389 0.19018 / 1), color(srgb 0.10377 0.09668 0.20854 / 1), color(srgb 0.10431 0.11031 0.22581 / 1), color(srgb 0.10375 0.12473 0.24181 / 1), color(srgb 0.10227 0.13989 0.25634 / 1), color(srgb 0.10006 0.15573 0.26925 / 1), color(srgb 0.09732 0.17216 0.28042 / 1), color(srgb 0.09428 0.18908 0.28975 / 1), color(srgb 0.09116 0.20641 0.29717 / 1), color(srgb 0.08818 0.22402 0.30264 / 1), color(srgb 0.08558 0.24181 0.30616 / 1), color(srgb 0.08357 0.25966 0.30775 / 1), color(srgb 0.08238 0.27744 0.30747 / 1), color(srgb 0.08221 0.29503 0.30541 / 1), color(srgb 0.08326 0.31231 0.30168 / 1), color(srgb 0.08571 0.32916 0.29642 / 1), color(srgb 0.08972 0.34548 0.28981 / 1), color(srgb 0.09542 0.36115 0.28204 / 1), color(srgb 0.10294 0.37607 0.27331 / 1), color(srgb 0.11237 0.39016 0.26385 / 1), color(srgb 0.12377 0.40334 0.25391 / 1), color(srgb 0.13718 0.41553 0.24374 / 1), color(srgb 0.15261 0.4267 0.23359 / 1), color(srgb 0.17004 0.4368 0.22373 / 1), color(srgb 0.18943 0.4458 0.21441 / 1), color(srgb 0.21069 0.45369 0.20589 / 1), color(srgb 0.23374 0.46049 0.19843 / 1), color(srgb 0.25844 0.4662 0.19224 / 1), color(srgb 0.28465 0.47087 0.18757 / 1), color(srgb 0.31219 0.47454 0.1846 / 1), color(srgb 0.34088 0.47727 0.18352 / 1), color(srgb 0.37051 0.47914 0.18449 / 1), color(srgb 0.40086 0.48024 0.18764 / 1), color(srgb 0.4317 0.48067 0.19308 / 1), color(srgb 0.46279 0.48053 0.20087 / 1), color(srgb 0.49389 0.47993 0.21107 / 1), color(srgb 0.52476 0.479 0.2237 / 1), color(srgb 0.55515 0.47787 0.23872 / 1), color(srgb 0.58483 0.47666 0.25611 / 1), color(srgb 0.61356 0.4755 0.27577 / 1), color(srgb 0.64114 0.47453 0.2976 / 1), color(srgb 0.66737 0.47386 0.32148 / 1), color(srgb 0.69205 0.47363 0.34722 / 1), color(srgb 0.71503 0.47395 0.37466 / 1), color(srgb 0.73617 0.47493 0.40358 / 1), color(srgb 0.75534 0.47668 0.43377 / 1), color(srgb 0.77245 0.47928 0.46497 / 1), color(srgb 0.78745 0.48281 0.49695 / 1), color(srgb 0.80029 0.48735 0.52943 / 1), color(srgb 0.81096 0.49294 0.56216 / 1), color(srgb 0.81948 0.49963 0.59485 / 1), color(srgb 0.8259 0.50744 0.62726 / 1), color(srgb 0.8303 0.51639 0.65912 / 1), color(srgb 0.83277 0.52646 0.69018 / 1), color(srgb 0.83343 0.53765 0.7202 / 1), color(srgb 0.83244 0.54991 0.74897 / 1), color(srgb 0.82996 0.5632 0.77627 / 1), color(srgb 0.82618 0.57746 0.80194 / 1), color(srgb 0.82129 0.59261 0.82581 / 1), color(srgb 0.81553 0.60857 0.84776 / 1), color(srgb 0.8091 0.62525 0.86768 / 1), color(srgb 0.80224 0.64253 0.8855 / 1), color(srgb 0.79519 0.66031 0.90119 / 1), color(srgb 0.78817 0.67848 0.91472 / 1), color(srgb 0.78142 0.69691 0.92613 / 1), color(srgb 0.77516 0.71547 0.93547 / 1), color(srgb 0.7696 0.73405 0.94282 / 1), color(srgb 0.76493 0.75252 0.94828 / 1), color(srgb 0.76136 0.77077 0.952 / 1), color(srgb 0.75902 0.78868 0.95413 / 1), color(srgb 0.75808 0.80614 0.95487 / 1), color(srgb 0.75864 0.82306 0.95442 / 1), color(srgb 0.76079 0.83935 0.95299 / 1), color(srgb 0.76462 0.85493 0.95083 / 1), color(srgb 0.77014 0.86974 0.94817 / 1), color(srgb 0.77737 0.88372 0.94527 / 1), color(srgb 0.78629 0.89684 0.94238 / 1), color(srgb 0.79685 0.90909 0.93974 / 1), color(srgb 0.80898 0.92044 0.9376 / 1), color(srgb 0.82256 0.93092 0.9362 / 1), color(srgb 0.83747 0.94054 0.93576 / 1), color(srgb 0.85355 0.94935 0.93647 / 1), color(srgb 0.87062 0.9574 0.93852 / 1), color(srgb 0.8885 0.96477 0.94207 / 1), color(srgb 0.90697 0.97154 0.94724 / 1), color(srgb 0.9258 0.9778 0.95415 / 1), color(srgb 0.94476 0.98365 0.96286 / 1), color(srgb 0.96361 0.98922 0.97341 / 1), color(srgb 0.9821 0.99463 0.9858 / 1), color(srgb 1 1 1 / 1)]
>>> scheme = cubehelix_scheme(300, -1.5, 0.75, 1)
>>> Steps([scheme(i).clip('srgb') for i in alg.linspace(0, 1, 100, endpoint=True)])
[color(srgb 0 0 0 / 1), color(srgb 0.02034 0.00329 0.01868 / 1), color(srgb 0.03876 0.00719 0.03938 / 1), color(srgb 0.05505 0.01186 0.06177 / 1), color(srgb 0.06905 0.01743 0.0855 / 1), color(srgb 0.08067 0.02404 0.1102 / 1), color(srgb 0.08985 0.03178 0.13549 / 1), color(srgb 0.09656 0.04073 0.16097 / 1), color(srgb 0.10085 0.05096 0.18627 / 1), color(srgb 0.10278 0.06249 0.21099 / 1), color(srgb 0.10248 0.07533 0.23477 / 1), color(srgb 0.1001 0.08946 0.25725 / 1), color(srgb 0.09586 0.10485 0.27812 / 1), color(srgb 0.08996 0.12144 0.29705 / 1), color(srgb 0.08269 0.13913 0.3138 / 1), color(srgb 0.07433 0.15784 0.32812 / 1), color(srgb 0.06518 0.17743 0.33982 / 1), color(srgb 0.05557 0.19777 0.34877 / 1), color(srgb 0.04583 0.21871 0.35485 / 1), color(srgb 0.03631 0.24008 0.358 / 1), color(srgb 0.02735 0.26171 0.35823 / 1), color(srgb 0.01929 0.28343 0.35557 / 1), color(srgb 0.01245 0.30504 0.3501 / 1), color(srgb 0.00715 0.32638 0.34195 / 1), color(srgb 0.00367 0.34725 0.33131 / 1), color(srgb 0.0023 0.36748 0.31837 / 1), color(srgb 0.00326 0.3869 0.30341 / 1), color(srgb 0.00677 0.40536 0.28669 / 1), color(srgb 0.013 0.42269 0.26855 / 1), color(srgb 0.0221 0.43877 0.24931 / 1), color(srgb 0.03415 0.45349 0.22935 / 1), color(srgb 0.04921 0.46673 0.20904 / 1), color(srgb 0.0673 0.47844 0.18877 / 1), color(srgb 0.0884 0.48853 0.16892 / 1), color(srgb 0.11242 0.49698 0.1499 / 1), color(srgb 0.13927 0.50377 0.13207 / 1), color(srgb 0.16879 0.50891 0.11582 / 1), color(srgb 0.20079 0.51243 0.1015 / 1), color(srgb 0.23505 0.51438 0.08943 / 1), color(srgb 0.27131 0.51484 0.07993 / 1), color(srgb 0.3093 0.51389 0.07326 / 1), color(srgb 0.34869 0.51165 0.06967 / 1), color(srgb 0.38917 0.50825 0.06934 / 1), color(srgb 0.43038 0.50383 0.07244 / 1), color(srgb 0.47196 0.49857 0.07909 / 1), color(srgb 0.51357 0.49262 0.08934 / 1), color(srgb 0.55482 0.48618 0.10322 / 1), color(srgb 0.59535 0.47943 0.12071 / 1), color(srgb 0.63481 0.47256 0.14174 / 1), color(srgb 0.67287 0.46578 0.16618 / 1), color(srgb 0.70919 0.45927 0.19388 / 1), color(srgb 0.74348 0.45322 0.22464 / 1), color(srgb 0.77545 0.44782 0.25821 / 1), color(srgb 0.80487 0.44325 0.29431 / 1), color(srgb 0.83152 0.43967 0.33265 / 1), color(srgb 0.85523 0.43724 0.37288 / 1), color(srgb 0.87585 0.43609 0.41463 / 1), color(srgb 0.8933 0.43634 0.45754 / 1), color(srgb 0.9075 0.43809 0.50122 / 1), color(srgb 0.91846 0.44143 0.54525 / 1), color(srgb 0.92619 0.44642 0.58925 / 1), color(srgb 0.93078 0.45308 0.63281 / 1), color(srgb 0.93232 0.46145 0.67555 / 1), color(srgb 0.93097 0.47151 0.71709 / 1), color(srgb 0.92691 0.48324 0.75707 / 1), color(srgb 0.92037 0.49658 0.79517 / 1), color(srgb 0.9116 0.51147 0.83108 / 1), color(srgb 0.90088 0.52781 0.86453 / 1), color(srgb 0.88851 0.54548 0.89528 / 1), color(srgb 0.87481 0.56438 0.92315 / 1), color(srgb 0.86012 0.58434 0.94798 / 1), color(srgb 0.84478 0.60521 0.96966 / 1), color(srgb 0.82915 0.62684 0.98814 / 1), color(srgb 0.81357 0.64903 1 / 1), color(srgb 0.79839 0.67162 1 / 1), color(srgb 0.78395 0.69442 1 / 1), color(srgb 0.77056 0.71723 1 / 1), color(srgb 0.75851 0.73989 1 / 1), color(srgb 0.74809 0.76221 1 / 1), color(srgb 0.73954 0.78402 1 / 1), color(srgb 0.73307 0.80517 1 / 1), color(srgb 0.72886 0.8255 1 / 1), color(srgb 0.72705 0.84488 1 / 1), color(srgb 0.72773 0.8632 1 / 1), color(srgb 0.73096 0.88036 0.99801 / 1), color(srgb 0.73676 0.89629 0.98861 / 1), color(srgb 0.74509 0.91092 0.97922 / 1), color(srgb 0.75589 0.92423 0.97022 / 1), color(srgb 0.76902 0.93622 0.96196 / 1), color(srgb 0.78434 0.94688 0.95481 / 1), color(srgb 0.80165 0.95626 0.94909 / 1), color(srgb 0.82072 0.96443 0.9451 / 1), color(srgb 0.84129 0.97146 0.94313 / 1), color(srgb 0.86305 0.97746 0.9434 / 1), color(srgb 0.8857 0.98256 0.94612 / 1), color(srgb 0.9089 0.9869 0.95143 / 1), color(srgb 0.93229 0.99063 0.95945 / 1), color(srgb 0.95551 0.99393 0.97022 / 1), color(srgb 0.9782 0.99699 0.98375 / 1), color(srgb 1 1 1 / 1)]
>>> scheme = cubehelix_scheme(300, -1, 0.5, 1)
>>> Steps([scheme(i).clip('srgb') for i in alg.linspace(0, 1, 100, endpoint=True)])
[color(srgb 0 0 0 / 1), color(srgb 0.01711 0.00552 0.01556 / 1), color(srgb 0.03335 0.01131 0.03203 / 1), color(srgb 0.04867 0.01743 0.04929 / 1), color(srgb 0.06301 0.02391 0.06723 / 1), color(srgb 0.07635 0.03079 0.08576 / 1), color(srgb 0.08865 0.03811 0.10475 / 1), color(srgb 0.0999 0.04591 0.1241 / 1), color(srgb 0.11008 0.0542 0.14368 / 1), color(srgb 0.11921 0.06301 0.16337 / 1), color(srgb 0.12728 0.07235 0.18307 / 1), color(srgb 0.13433 0.08224 0.20266 / 1), color(srgb 0.14037 0.09267 0.22203 / 1), color(srgb 0.14545 0.10366 0.24107 / 1), color(srgb 0.14961 0.1152 0.25968 / 1), color(srgb 0.1529 0.12727 0.27776 / 1), color(srgb 0.15539 0.13988 0.29521 / 1), color(srgb 0.15713 0.15299 0.31195 / 1), color(srgb 0.15821 0.16659 0.3279 / 1), color(srgb 0.1587 0.18065 0.34299 / 1), color(srgb 0.15868 0.19514 0.35714 / 1), color(srgb 0.15824 0.21003 0.37031 / 1), color(srgb 0.15746 0.22528 0.38244 / 1), color(srgb 0.15644 0.24086 0.3935 / 1), color(srgb 0.15528 0.25671 0.40345 / 1), color(srgb 0.15406 0.27281 0.41228 / 1), color(srgb 0.15289 0.28909 0.41998 / 1), color(srgb 0.15185 0.30552 0.42653 / 1), color(srgb 0.15104 0.32204 0.43195 / 1), color(srgb 0.15055 0.3386 0.43625 / 1), color(srgb 0.15047 0.35516 0.43947 / 1), color(srgb 0.15089 0.37167 0.44162 / 1), color(srgb 0.15188 0.38807 0.44276 / 1), color(srgb 0.15353 0.40432 0.44294 / 1), color(srgb 0.1559 0.42037 0.44221 / 1), color(srgb 0.15907 0.43618 0.44064 / 1), color(srgb 0.16309 0.45169 0.4383 / 1), color(srgb 0.16801 0.46687 0.43526 / 1), color(srgb 0.17389 0.48168 0.43162 / 1), color(srgb 0.18076 0.49609 0.42746 / 1), color(srgb 0.18866 0.51005 0.42286 / 1), color(srgb 0.19761 0.52354 0.41794 / 1), color(srgb 0.20762 0.53653 0.41278 / 1), color(srgb 0.21871 0.54899 0.40748 / 1), color(srgb 0.23088 0.56092 0.40215 / 1), color(srgb 0.24411 0.57229 0.39688 / 1), color(srgb 0.2584 0.5831 0.39179 / 1), color(srgb 0.27372 0.59333 0.38696 / 1), color(srgb 0.29004 0.60299 0.38249 / 1), color(srgb 0.30731 0.61207 0.37849 / 1), color(srgb 0.3255 0.62058 0.37504 / 1), color(srgb 0.34456 0.62854 0.37223 / 1), color(srgb 0.36442 0.63595 0.37014 / 1), color(srgb 0.38501 0.64284 0.36886 / 1), color(srgb 0.40628 0.64922 0.36844 / 1), color(srgb 0.42814 0.65513 0.36897 / 1), color(srgb 0.45051 0.66059 0.37049 / 1), color(srgb 0.47331 0.66564 0.37305 / 1), color(srgb 0.49646 0.67031 0.37671 / 1), color(srgb 0.51986 0.67464 0.38148 / 1), color(srgb 0.54343 0.67867 0.38741 / 1), color(srgb 0.56708 0.68245 0.3945 / 1), color(srgb 0.5907 0.68601 0.40277 / 1), color(srgb 0.61421 0.68942 0.41221 / 1), color(srgb 0.63752 0.69271 0.42282 / 1), color(srgb 0.66054 0.69593 0.43458 / 1), color(srgb 0.68318 0.69914 0.44745 / 1), color(srgb 0.70536 0.70238 0.46141 / 1), color(srgb 0.72699 0.70571 0.47641 / 1), color(srgb 0.74801 0.70916 0.49239 / 1), color(srgb 0.76834 0.71279 0.5093 / 1), color(srgb 0.78791 0.71665 0.52707 / 1), color(srgb 0.80667 0.72077 0.54563 / 1), color(srgb 0.82456 0.7252 0.56488 / 1), color(srgb 0.84154 0.72998 0.58476 / 1), color(srgb 0.85756 0.73515 0.60517 / 1), color(srgb 0.87261 0.74074 0.626 / 1), color(srgb 0.88665 0.74677 0.64717 / 1), color(srgb 0.89967 0.75328 0.66856 / 1), color(srgb 0.91167 0.76029 0.69008 / 1), color(srgb 0.92264 0.76781 0.71161 / 1), color(srgb 0.93261 0.77587 0.73306 / 1), color(srgb 0.94158 0.78446 0.75431 / 1), color(srgb 0.9496 0.7936 0.77526 / 1), color(srgb 0.95669 0.80329 0.7958 / 1), color(srgb 0.96291 0.81351 0.81584 / 1), color(srgb 0.9683 0.82427 0.83528 / 1), color(srgb 0.97293 0.83554 0.85401 / 1), color(srgb 0.97686 0.84731 0.87197 / 1), color(srgb 0.98018 0.85956 0.88906 / 1), color(srgb 0.98297 0.87225 0.90521 / 1), color(srgb 0.98531 0.88536 0.92035 / 1), color(srgb 0.98729 0.89884 0.93443 / 1), color(srgb 0.98902 0.91267 0.94739 / 1), color(srgb 0.9906 0.92679 0.95918 / 1), color(srgb 0.99214 0.94115 0.96979 / 1), color(srgb 0.99374 0.95571 0.97918 / 1), color(srgb 0.9955 0.97041 0.98734 / 1), color(srgb 0.99755 0.98519 0.99428 / 1), color(srgb 1 1 1 / 1)]
>>> scheme = cubehelix_scheme(60, -1.5, 0.5, 1)
>>> Steps([scheme(i).clip('srgb') for i in alg.linspace(0, 1, 100, endpoint=True)])
[color(srgb 0 0 0 / 1), color(srgb 0.01169 0.01112 0.00028 / 1), color(srgb 0.02499 0.02134 0.00103 / 1), color(srgb 0.03978 0.03067 0.00249 / 1), color(srgb 0.05592 0.03913 0.0049 / 1), color(srgb 0.07326 0.04677 0.00846 / 1), color(srgb 0.0916 0.05365 0.01336 / 1), color(srgb 0.11075 0.05985 0.01976 / 1), color(srgb 0.13049 0.06543 0.02778 / 1), color(srgb 0.15061 0.07051 0.03752 / 1), color(srgb 0.17086 0.07518 0.04905 / 1), color(srgb 0.19102 0.07956 0.0624 / 1), color(srgb 0.21087 0.08376 0.07756 / 1), color(srgb 0.23017 0.08791 0.09451 / 1), color(srgb 0.24872 0.09212 0.11318 / 1), color(srgb 0.2663 0.09651 0.13347 / 1), color(srgb 0.28274 0.10121 0.15526 / 1), color(srgb 0.29785 0.10634 0.17839 / 1), color(srgb 0.3115 0.11199 0.2027 / 1), color(srgb 0.32355 0.11827 0.22799 / 1), color(srgb 0.3339 0.12527 0.25403 / 1), color(srgb 0.34247 0.13307 0.28061 / 1), color(srgb 0.34923 0.14175 0.30747 / 1), color(srgb 0.35414 0.15136 0.33438 / 1), color(srgb 0.35721 0.16194 0.36107 / 1), color(srgb 0.35848 0.17352 0.38729 / 1), color(srgb 0.35802 0.18612 0.41279 / 1), color(srgb 0.35592 0.19974 0.43733 / 1), color(srgb 0.35228 0.21435 0.46068 / 1), color(srgb 0.34726 0.22994 0.48261 / 1), color(srgb 0.34101 0.24645 0.50294 / 1), color(srgb 0.33372 0.26382 0.52147 / 1), color(srgb 0.32559 0.28198 0.53805 / 1), color(srgb 0.31682 0.30086 0.55255 / 1), color(srgb 0.30765 0.32035 0.56486 / 1), color(srgb 0.2983 0.34034 0.57492 / 1), color(srgb 0.28903 0.36074 0.58266 / 1), color(srgb 0.28005 0.38141 0.58809 / 1), color(srgb 0.27162 0.40224 0.59121 / 1), color(srgb 0.26396 0.42309 0.59207 / 1), color(srgb 0.2573 0.44385 0.59075 / 1), color(srgb 0.25185 0.46437 0.58736 / 1), color(srgb 0.24781 0.48454 0.58204 / 1), color(srgb 0.24536 0.50423 0.57493 / 1), color(srgb 0.24466 0.52332 0.56623 / 1), color(srgb 0.24586 0.54171 0.55615 / 1), color(srgb 0.24906 0.5593 0.5449 / 1), color(srgb 0.25437 0.57599 0.53274 / 1), color(srgb 0.26183 0.59171 0.51991 / 1), color(srgb 0.27149 0.60638 0.50668 / 1), color(srgb 0.28336 0.61996 0.49332 / 1), color(srgb 0.29742 0.6324 0.48009 / 1), color(srgb 0.31361 0.64368 0.46726 / 1), color(srgb 0.33186 0.65379 0.4551 / 1), color(srgb 0.35207 0.66273 0.44385 / 1), color(srgb 0.37412 0.67052 0.43377 / 1), color(srgb 0.39785 0.67719 0.42507 / 1), color(srgb 0.42309 0.6828 0.41796 / 1), color(srgb 0.44966 0.68741 0.41264 / 1), color(srgb 0.47734 0.69108 0.40925 / 1), color(srgb 0.50593 0.69392 0.40793 / 1), color(srgb 0.53518 0.696 0.40879 / 1), color(srgb 0.56487 0.69744 0.41191 / 1), color(srgb 0.59475 0.69836 0.41734 / 1), color(srgb 0.62458 0.69886 0.42508 / 1), color(srgb 0.65414 0.69908 0.43514 / 1), color(srgb 0.68318 0.69914 0.44745 / 1), color(srgb 0.71148 0.69917 0.46195 / 1), color(srgb 0.73884 0.69928 0.47853 / 1), color(srgb 0.76507 0.69961 0.49706 / 1), color(srgb 0.78998 0.70028 0.51739 / 1), color(srgb 0.81342 0.70139 0.53932 / 1), color(srgb 0.83526 0.70305 0.56267 / 1), color(srgb 0.85539 0.70536 0.58721 / 1), color(srgb 0.87373 0.7084 0.61271 / 1), color(srgb 0.89023 0.71224 0.63893 / 1), color(srgb 0.90486 0.71695 0.66562 / 1), color(srgb 0.91762 0.72256 0.69253 / 1), color(srgb 0.92855 0.72912 0.71939 / 1), color(srgb 0.93769 0.73664 0.74597 / 1), color(srgb 0.94514 0.74511 0.77201 / 1), color(srgb 0.95101 0.75454 0.7973 / 1), color(srgb 0.95542 0.76488 0.82161 / 1), color(srgb 0.95855 0.7761 0.84474 / 1), color(srgb 0.96055 0.78814 0.86653 / 1), color(srgb 0.96164 0.80092 0.88682 / 1), color(srgb 0.962 0.81438 0.90549 / 1), color(srgb 0.96187 0.8284 0.92244 / 1), color(srgb 0.96146 0.8429 0.9376 / 1), color(srgb 0.96101 0.85777 0.95095 / 1), color(srgb 0.96074 0.87287 0.96248 / 1), color(srgb 0.96089 0.8881 0.97222 / 1), color(srgb 0.96166 0.90334 0.98024 / 1), color(srgb 0.96327 0.91844 0.98664 / 1), color(srgb 0.96592 0.93331 0.99154 / 1), color(srgb 0.96977 0.9478 0.9951 / 1), color(srgb 0.97498 0.96182 0.99751 / 1), color(srgb 0.98169 0.97526 0.99897 / 1), color(srgb 0.99001 0.98801 0.99972 / 1), color(srgb 1 1 1 / 1)]