UP | HOME

MRaster Color Schemes

Copyright © 2022 Mitch Richling. All rights reserved.

Table of Contents

1. Introduction

MRaster provides access to a rich collection of color schemes. Color schemes are exposed in the API as inner classes of the colorTpl class. These inner classes follow a regular naming convention:

These classes are static in nature, and an instance is not required to use them. They all have members named "c" which can set the color of an existing colorTpl instance (a "setter") or create a brand new instance (a "factory").

When used as a factory, color scheme classes return fully constructed colorTpl objects:

mjr:color3c8b aColor = mjr::color3c8b::webSafeNormalVision.c(25);

Alternately, color scheme classes may set the components of a passed colorTpl instance:

mjr::color3c8b aColor;
mjr::color3c8b::webSafeNormalVision.c(aColor, 25);

Color scheme classes may also be used by colorTpl methods to identify a color scheme. For example, the csSet method can set the current object's components based on a color scheme like so:

mjr::color3c8b aColor;
aColor.csSet<mjr::color3c8b::webSafeNormalVision>(25);

1.1. Color Scheme Class Interface

Not all color scheme classes have the same interface; however, the interfaces are uniformly designed:

  • numC: The number of colors available in the scheme
    • Color schemes with a fixed number of colors at compile time have member numC
    • Color schemes with the number of colors set at run time, will have a numC argument for the c methods.
      • These schemes have two members specifying the range for numC: minNumC & maxNumC.
  • c: methods are used to set colors
    • The c methods come in pairs:
      • A colorTpl factory methodand that takes one or more arguments identifying the color within the color scheme
        • The first argument is the color scheme selector used to select a color from the scheme:
          • csIntType csIdx: An integer "index" for descrete color schemes (like Colorbrewer schemes)
          • csFltType csX: A floating point value in [0, 1] used to select colors from continuous schemes (like gradiants)
          • csNatType csVal: A csFltType or csIntType depending on the clrChanT. Used as described above.
          • colorTpl csCol: A color object to be converted to a color. See the csHSLh* schemes as an example.
          • typename csG: A generic color selector used in a template
        • The remaining arguments are generally used to specify some characterstic of the scheme itself. Examples:
          • A numC argument specifying the number of elements in a discrete scheme (like Colorbrewer schemes)
          • The color match function based rainbow color schemes take an argument interpMethod specifiying an interpolation method. is
      • A method that takes a colorTpl as it's first argument, with the remaining arguments as in the factory method form of c.
    • It is entirely possilbe that a color scheme object may have more than two c methods. For example, csCC* color schemes have a pair of c methods taking integer color selectors and another pair taking a floating point color selectors.

Many color schemes provide a number of colors that is a function of chanStepMax, which is directly related to the value of clrChanT. For integral clrChanT types, chanStepMax will be equal to maxChanVal. For floating point clrChanT types, chanStepMax will be equal to \(2^{31}\).

2. Color Cube Edge/Diagonal Graph Color Schemes

The RGB color cube:

.                                                       _________________________
.                                                green / _____________________  /| yellow
.                                                     / / ___________________/ / |
.                                                    / / /| |               / /  |
.                                                   / / / | |              / / . |
.                                                  / / /| | |             / / /| |
.                                                 / / / | | |            / / / | |
.                                                / / /  | | |     white / / /| | |
.                                               / /_/__________________/ / / | | |
.                                              /________________________/ /  | | |
.                                         cyan | ______________________ | |  | | |
.                                              | | |    | | |_________| | |__| | |
.                                              | | |    | |___________| | |____| |
.                                              | | |   / / ___________| | |_  / / red
.                                              | | |  / / /           | | |/ / /
.                                              | | | / / /  black     | | | / /
.                                              | | |/ / /             | | |/ /
.                                              | | | / /              | | ' /
.                                              | | |/_/_______________| |  /
.                                              | |____________________| | /
.                                         blue |________________________|/ magenta
.
.                                       Vertexes and Center of the RGB Color Cube:
.                                       Name     R     G     B     Abriv
.                                       black    0.0   0.0   0.0   0
.                                       blue     0.0   0.0   1.0   b
.                                       green    0.0   1.0   0.0   g
.                                       red      1.0   0.0   0.0   r
.                                       yellow   1.0   1.0   0.0   y
.                                       cyan     0.0   1.0   1.0   c
.                                       magenta  1.0   0.0   1.0   m
.                                       white    1.0   1.0   1.0   w
.                                       grey50   0.5   0.5   0.5   h

The RGB color cube is usually considered as part of the 3D Euclidean space \(\mathbb{R}^3\) – that is \(R\), \(G\), & \(B\) are real values in \(I=[0, 1]\). This subset of \(\mathbb{R}^3\) is frequently called the "unit cube" and denoted by \(I^3\). A gradient in this context is a continuous curve, \(c:I\rightarrow I^3\), from one point in the cube to another. In this way we define an infinite sequence of colors. The most popular gradients are straight lines connecting two colors together. The next most popular is a pairwise linear curve connecting several colors together – usually with each linear component the same length.

Digital images are most commonly represented with integer values for \(R\), \(G\), & \(B\). Most commonly unsigned, 8-bit integers – \(0.0\) mapping to \(0\) and \(1.0\) mapping to \(255\). In this scenario one might think of the RGB color space as a discrete set of \(16777216\) values, and color gradients as finite sequences of discrete "steps" from one discrete color value to another. For example, a linear gradient from "green" to "yellow" will have precisely \(256\) unique steps when the color space is defined in terms of 8-bit, integer color channels. Note that a linear gradient from "green" to "magenta", across the diagonal of the cube, will also have \(256\) color steps – one of the oddities of distance measurement the discrete RGB space! Lastly, note that if we had a gradient from "green" through "yellow" and ending at "red", we would have have \(511\) distinct colors. So discreet RGB color spaces produce discreet gradients, and the number of colors in the gradient will differ depending on the points traversed.

The corners of the color cube are by far the most popular choices for gradient control points. In describing these gradients it is usefully to think about the corners and how we can connect them as a mathematical graph.

The edges of the cube taken with the corners as vertexes form a graph (referred to as "the cube edge graph" in this documentation). Every trail (a walk with unique edges) with \(n\) edges generates a color scheme with \(\mathrm{maxChanVal}\cdot n - 1\) unique colors. To make this scheme unique, we define the tree to have one of its end points the "start" of the scheme – so we can map the integers from \([0,\mathrm{maxChanVal}\cdot n]\) to unique colors.

Example:

"BCG" defines a trail starting at B (blue), moving to C (cyan) next, and ending at G (green). The color scheme has \(0\) mapped to blue (the first vertex), \(256\) mapped to cyan (the second vertex), and \(511\) mapped to green (the final vertex). For values between two vertex points, we linearly interpolate between the two values.

If we expand the graph to also include edges between the diagonal points of each face (cyan to yellow for example), we have a larger graph with more options. This graph is referred to as "the face edge/diagonal graph" in this documentation.

Lastly, we can expand that graph by adding one vertex, called h, at the center of the cube with edges extending to each corner. This graph is referred to as "complete cube graph with center" in this documentation.

Every color scheme in this section can be created via the cmpRGBcornerDGradiant() method of colorTpl; however, many are also available as predefined color scheme objects. The color schemes provided by the csCC_tpl template provide a dual interface. One provides a discreet view of gradients (the c methods with csIdx arguments), and the other provides a continuous view of gradients (the c methods with csX arguments). When the colors use floating point channels, the discreet gradients have \(2^{31}\) steps between corner colors.

2.1. Maximal circuits in the cube edge graph

This is one of the most commonly seen color schemes in scientific visualization. The color cube rainbow map is generated by the unique six segment (6 vertex) cycle in the face edge graph not involving white or black:

  • RYGCBMRcsCColdeRainbow

2.1.1. Predefined Schemes

csCColdeRainbow

color_lut_docs_csCColdeRainbow_50.png

2.2. Maximal circuits in the cube edge/diagonal graph

If we expand to the edge face/diagonal graph, then we have may more six segment cycles not involving white or black:

  • RBCGYMR
  • RBCMYGR
  • RBGCMYR
  • RBGCYMR
  • RBGYCMR
  • RBMCGYR
  • RBMCYGR
  • RBMYCGR
  • RGBCMYR
  • RGBCYMR
  • RGBMCYR
  • RGCBMYR
  • RGYCBMR
  • RMBGCYR
  • RMCBGYR

2.3. Hitting all the corners

A common request is for a cycle in the face edge graph that uses every corner color of the RGB cube. Not only do we have one, but 6 uniquely different ones – not counting rearrangements or reversals:

  • 0BCGYWMR0
  • 0BCWMRYG0
  • 0BMRYWCG0
  • 0BMWCGYR0
  • 0GCBMWYR0
  • 0GYWCBMR0

2.4. Large Trees

Another common request is for trees (so no color is used twice) starting at black and ending at white. Several trees exist of lengths of 7 and 5:

  • 0BCGYRMW
  • 0BMRYGCW
  • 0GCBMRYW
  • 0GYRMBCW
  • 0RMBCGYW
  • 0RYGCBMW
  • 0BCGYW
  • 0BMRYW
  • 0GCBMW
  • 0GYRMW
  • 0RMBCW
  • 0RYGCW

2.5. Black to White in Three Trees

The three segment trees from black to white are useful in that the intensity (sum of the components) is a monotone increasing function from zero up to three. One of them (0RYW) is often called the "fire ramp" as it ranges from black (flame base), up to yellow, then red, and finally to white hot.

  • 0BCWcsCCsumBGR
  • 0BMWcsCCsumBRG
  • 0GCWcsCCsumGBR
  • 0GYWcsCCsumGRB
  • 0RMWcsCCsumRBG
  • 0RYWcsCCsumRGB & csCColdeFireRamp

2.5.1. Predefined Schemes

csCCsumBGR

color_lut_docs_csCCsumBGR_50.png
csCCsumBRG

color_lut_docs_csCCsumBRG_50.png
csCCsumGBR

color_lut_docs_csCCsumGBR_50.png
csCCsumGRB

color_lut_docs_csCCsumGRB_50.png
csCCsumRBG

color_lut_docs_csCCsumRBG_50.png
csCCsumRGB & csCColdeFireRamp

color_lut_docs_csCCsumRGB_50.png

2.6. Black to Corner in One Trees

These minimal trees go from black to a corner of the cube – not much of a tree!! Still, they are exceedingly common in applications, and thus have predefined color schemes.

  • 0WcsCCu0W
  • 0RcsCCu0R
  • 0BcsCCu0B
  • 0GcsCCu0G
  • 0CcsCCu0C
  • 0McsCCu0M
  • 0YcsCCu0Y

2.6.1. Predefined Schemes

csCCu0W

color_lut_docs_csCCu0W_50.png
csCCu0R

color_lut_docs_csCCu0R_50.png
csCCu0B

color_lut_docs_csCCu0B_50.png
csCCu0G

color_lut_docs_csCCu0G_50.png
csCCu0C

color_lut_docs_csCCu0C_50.png
csCCu0M

color_lut_docs_csCCu0M_50.png
csCCu0Y

color_lut_docs_csCCu0Y_50.png

2.7. White In Center Circular Gradients

These three node cycles start and end with a primary or secondary color, and have white in the center. They are usefull for highlighting one segment of a circular data set – for example highlighting a sector of angles on a circle. As such they find application in complex number argument plots.

  • RWRcsCCwicR
  • GWGcsCCwicG
  • BWBcsCCwicB
  • MWMcsCCwicM
  • YWYcsCCwicY
  • CWCcsCCwicC

2.7.1. Predefined Schemes

csCCwicR

color_lut_docs_csCCwicR_50.png
csCCwicG

color_lut_docs_csCCwicG_50.png
csCCwicB

color_lut_docs_csCCwicB_50.png
csCCwicM

color_lut_docs_csCCwicM_50.png
csCCwicY

color_lut_docs_csCCwicY_50.png
csCCwicC

color_lut_docs_csCCwicC_50.png

2.8. Luminance based color schemes

Luminance based color schemes defined as color gradients from the center of the in the HSL color space to an extreem vertex are quite popular. Many of the most popular luminance based color schemes in the HSL color space are also edge graphs in the RGB color cube! Of particular note, are the two segment trees from black to white in the RGB edge/diagonal graph – they are the same as the two segment graphs in the edges of the HSL hexcone from black to white!

  • 0RWH=000 – red edge of the HSL hexcone
  • 0YWH=060 – yellow edge of the HSL hexcone
  • 0GWH=120 – green edge of the HSL hexcone
  • 0CWH=180 – cyan edge of the HSL hexcone
  • 0BWH=240 – blue edge of the HSL hexcone
  • 0MWH=300 – magenta edge of the HSL hexcone

2.9. Hot Too Cold

A very common color map used to map data with ranges from cold up to hot is known as the "cold too hot ramp". This ramp provides colors from blue, up through green, and ends in red. It suffers from the same defects as the color cube rainbow; however, its use is so common that special support is provided via a named method.

  • BCGYRcsCColdeColdToHot

The traditional cold to hot ramp can be improved – this is my personal opinion. This new ramp still has the same problems the color cube rainbow has; however, it is more attractive. This one moves from white (ice), up to water (blue), and then up to red (hot) via yellow.

  • WCBYRcsCColdeIceToWaterToHot

2.9.1. Predefined Schemes

csCColdeColdToHot

color_lut_docs_csCColdeColdToHot_50.png
csCColdeIceToWaterToHot

color_lut_docs_csCColdeIceToWaterToHot_50.png

2.10. Common Fractal Color Graphs

These color schemes have no special cycle/tree/graph structure at all, but they are commonly used to color fractals. Common enough that I have included predefined schemes for them.

  • 0RYBCWcsCCfractal0RYBCW
  • YRcsCCfractalYR
  • YBcsCCfractalYB

2.10.1. Predefined Schemes

csCCfractal0RYBCW

color_lut_docs_csCCfractal0RYBCW_50.png
csCCfractalYR

color_lut_docs_csCCfractalYR_50.png
csCCfractalYB

color_lut_docs_csCCfractalYB_50.png

2.11. Constant Intensity Cycles

Two cycles, with three edges each, exhibiting constant intensity for every color in the color scheme are genuinely useful. They have the advantage that they always render a "bright" color. The lower intensity version is best for projected media that don't do well with yellow.

  • CMYcsCCconsTwo – intensity == 2
  • BRGcsCCconsOne – intensity == 1

2.11.1. Predefined Schemes

csCCconsTwo

color_lut_docs_csCCconsTwo_50.png
csCCconsOne

color_lut_docs_csCCconsOne_50.png

2.12. One Segment Diverging Maps

One edge trees in the face diagonal graph with a nearly constant intensity of 2 along the entire edge are useful for "diverging" or "bipolar" color schemes. By definition, such color schemes will never involve black or white.

While rarely used, the following maps are useful and suggested. None of them have the problems associated with the color cube rainbow.

  • YCcsCCudBr
  • YMcsCCudBg
  • MCcsCCudGr
  • MYcsCCudGb
  • CMcsCCudRg
  • CYcsCCudRb

The naming convention for the methods is not obvious. Take, for example, setRGBcmpUpDownRampBr. This is so named because of the computational algorithm used to compute the scheme: Blue up, red down, green constant (maxChanVal).

2.12.1. Predefined Schemes

csCCudBr

color_lut_docs_csCCudBr_50.png
csCCudBg

color_lut_docs_csCCudBg_50.png
csCCudGr

color_lut_docs_csCCudGr_50.png
csCCudGb

color_lut_docs_csCCudGb_50.png
csCCudRg

color_lut_docs_csCCudRg_50.png
csCCudRb

color_lut_docs_csCCudRb_50.png

2.13. Three Segment Diverging Maps

Some three edge trees utilizing very different colors for starting and terminal points can form very nice "divergent" color maps. Such maps can successfully illustrate variables with both positive and negative values or two mutually exclusive, opposing variables. Only two are directly supported via named methods (selected for attractiveness):

  • BWR – intensity between 1 and 3
  • CWM – intensity between 2 and 3

2.13.1. Predefined Schemes

csCCdivBWR

color_lut_docs_csCCdivBWR_50.png
csCCdivCWM

color_lut_docs_csCCdivCWM_50.png

2.14. Center point ramps (HSL schemes)

Color schemes defined as gradients from the center of the HSL color space to an extreme edge are mostly perceptually linear. These are also one segment trees in the complete cube graph with center. Recall that we call the vertex at the center of the cube "H" – for "Half way between everything". Using this new vertex, we have the following saturation based color schemes:

  • HRcsHSLhR
  • HGcsHSLhG
  • HBcsHSLhB
  • HCcsHSLhC
  • HYcsHSLhY
  • HMcsHSLhM

2.14.1. Predefined Schemes

csHSLhR

color_lut_docs_csHSLhR_50.png
csHSLhG

color_lut_docs_csHSLhG_50.png
csHSLhB

color_lut_docs_csHSLhB_50.png
csHSLhC

color_lut_docs_csHSLhC_50.png
csHSLhY

color_lut_docs_csHSLhY_50.png
csHSLhM

color_lut_docs_csHSLhM_50.png

2.15. Stacked HSL Schemes

The diagonal traversals (diagonal meaning through the center of the cube) are essentially two of the HSL saturation based schemes placed back to back. Aside from the black-white one, these can form effective divergent color schemes.

  • CRcsCCdiagCR
  • MGcsCCdiagMG
  • YBcsCCdiagYB
  • 0WcsCCdiag01

2.15.1. Predefined Schemes

csCCdiagCR

color_lut_docs_csCCdiagCR_50.png
csCCdiagMG

color_lut_docs_csCCdiagMG_50.png
csCCdiagYB

color_lut_docs_csCCdiagYB_50.png
csCCdiag01

color_lut_docs_csCCdiag01_50.png

3. Continuous Polynomial Schemes

These schemes are "continuous" in that they take a floating point value to select the color, and are derived from continuous polynomial curves in the RGB cube space. Many of them are very similar to color maps in popular use (with similar names), but these are only only similar to those popular maps. In particular, the maps here may not be as precise when it comes to things like monotonously of intensity. That said these look nice and I like easy to compute color maps that don't require fancy interpolating schemes.

csPLYgrey

color_lut_docs_csPLYgrey_50.png
csPLYquad

color_lut_docs_csPLYquad_50.png
csPLYinferno

color_lut_docs_csPLYinferno_50.png
csPLYmagma

color_lut_docs_csPLYmagma_50.png
csPLYparula

color_lut_docs_csPLYparula_50.png
csPLYplasma

color_lut_docs_csPLYplasma_50.png
csPLYturbo

color_lut_docs_csPLYturbo_50.png
csPLYviridis

color_lut_docs_csPLYviridis_50.png
csPLYcividis

color_lut_docs_csPLYcividis_50.png
csPLYhsvRB

color_lut_docs_csPLYhsvRB_50.png

4. Dave Green's cubehelix color maps

The csCubeHelix_tpl templte can geneate any of the cubehelix schemes, but colorTpl predefines three I particularly like:

csCHstd

color_lut_docs_csCHstd_50.png
csCHblu

color_lut_docs_csCHblu_50.png
csCHvio

color_lut_docs_csCHvio_50.png

5. Pseudo-Greyscale

These schemes are not true greyscale, but the colors are very close to grey. These schemes are discreet!

csPGrey3x

color_lut_docs_csPGrey3x_50.png
csPGrey4x

color_lut_docs_csPGrey4x_50.png

6. Spectral

These color schemes are based on the spectrum and color match functions. These aren't really suitable for visualization, but some interesting color schemes can be derived from them.

csRainbowLA

color_lut_docs_csRainbowLA_50.png
csRainbowCM with BUMP

color_lut_docs_csRainbowCMb_50.png
csRainbowCM with LINEAR

color_lut_docs_csRainbowCMl_50.png
csRainbowCM with FLOOR

color_lut_docs_csRainbowCMf_50.png
csRainbowCM with CEILING

color_lut_docs_csRainbowCMc_50.png
csRainbowCM with NEAREST

color_lut_docs_csRainbowCMn_50.png

7. Color Brewer

The discreet schemes in this section are all from the colorbrewer2 collection:

Credit: Brewer, Cynthia A., 2022. http://www.colorbrewer.org2, 2022-07-30.

Most of these schemes can provide a variable number of steps from 3 up to what is illustrated in each color swatch below. Also note that colorTpl provides a continuous gradient version of each color scheme – which is kinda weird, but I like some of them.

csCBAccent

color_lut_docs_csCBAccent_50.png
color_lut_docs_csCBAccentC_50.png
csCBBlues

color_lut_docs_csCBBlues_50.png
color_lut_docs_csCBBluesC_50.png
csCBBrBG

color_lut_docs_csCBBrBG_50.png
color_lut_docs_csCBBrBGC_50.png
csCBBuGn

color_lut_docs_csCBBuGn_50.png
color_lut_docs_csCBBuGnC_50.png
csCBBuPu

color_lut_docs_csCBBuPu_50.png
color_lut_docs_csCBBuPuC_50.png
csCBDark2

color_lut_docs_csCBDark2_50.png
color_lut_docs_csCBDark2C_50.png
csCBGnBu

color_lut_docs_csCBGnBu_50.png
color_lut_docs_csCBGnBuC_50.png
csCBGreens

color_lut_docs_csCBGreens_50.png
color_lut_docs_csCBGreensC_50.png
csCBGreys

color_lut_docs_csCBGreys_50.png
color_lut_docs_csCBGreysC_50.png
csCBOranges

color_lut_docs_csCBOranges_50.png
color_lut_docs_csCBOrangesC_50.png
csCBOrRd

color_lut_docs_csCBOrRd_50.png
color_lut_docs_csCBOrRdC_50.png
csCBPaired

color_lut_docs_csCBPaired_50.png
color_lut_docs_csCBPairedC_50.png
csCBPastel1

color_lut_docs_csCBPastel1_50.png
color_lut_docs_csCBPastel1C_50.png
csCBPastel2

color_lut_docs_csCBPastel2_50.png
color_lut_docs_csCBPastel2C_50.png
csCBPiYG

color_lut_docs_csCBPiYG_50.png
color_lut_docs_csCBPiYGC_50.png
csCBPRGn

color_lut_docs_csCBPRGn_50.png
color_lut_docs_csCBPRGnC_50.png
csCBPuBuGn

color_lut_docs_csCBPuBuGn_50.png
color_lut_docs_csCBPuBuGnC_50.png
csCBPuBu

color_lut_docs_csCBPuBu_50.png
color_lut_docs_csCBPuBuC_50.png
csCBPuOr

color_lut_docs_csCBPuOr_50.png
color_lut_docs_csCBPuOrC_50.png
csCBPuRd

color_lut_docs_csCBPuRd_50.png
color_lut_docs_csCBPuRdC_50.png
csCBPurples

color_lut_docs_csCBPurples_50.png
color_lut_docs_csCBPurplesC_50.png
csCBRdBu

color_lut_docs_csCBRdBu_50.png
color_lut_docs_csCBRdBuC_50.png
csCBRdGy

color_lut_docs_csCBRdGy_50.png
color_lut_docs_csCBRdGyC_50.png
csCBRdPu

color_lut_docs_csCBRdPu_50.png
color_lut_docs_csCBRdPuC_50.png
csCBRdYlBu

color_lut_docs_csCBRdYlBu_50.png
color_lut_docs_csCBRdYlBuC_50.png
csCBRdYlGn

color_lut_docs_csCBRdYlGn_50.png
color_lut_docs_csCBRdYlGnC_50.png
csCBReds

color_lut_docs_csCBReds_50.png
color_lut_docs_csCBRedsC_50.png
csCBSet1

color_lut_docs_csCBSet1_50.png
color_lut_docs_csCBSet1C_50.png
csCBSet2

color_lut_docs_csCBSet2_50.png
color_lut_docs_csCBSet2C_50.png
csCBSet3

color_lut_docs_csCBSet3_50.png
color_lut_docs_csCBSet3C_50.png
csCBSpectral

color_lut_docs_csCBSpectral_50.png
color_lut_docs_csCBSpectralC_50.png
csCBYlGnBu

color_lut_docs_csCBYlGnBu_50.png
color_lut_docs_csCBYlGnBuC_50.png
csCBYlGn

color_lut_docs_csCBYlGn_50.png
color_lut_docs_csCBYlGnC_50.png
csCBYlOrBr

color_lut_docs_csCBYlOrBr_50.png
color_lut_docs_csCBYlOrBrC_50.png
csCBYlOrRd

color_lut_docs_csCBYlOrRd_50.png
color_lut_docs_csCBYlOrRdC_50.png

8. Web Safe & Color Blind Pallets

csWSSafeDeutanopia

color_lut_docs_csWSdeutanopia_50.png
csWSSafeDeutanopiaAlt

color_lut_docs_csWSdeutanopiaAlt_50.png
csWSSafeNormalVision

color_lut_docs_csWSnormalVision_50.png
csWSSafeProtanopia

color_lut_docs_csWSprotanopia_50.png
csWSSafeProtanopiaAlt

color_lut_docs_csWSprotanopiaAlt_50.png
csWSSafeTritanoptia

color_lut_docs_csWStritanoptia_50.png
csWSSafeTritanoptiaAlt

color_lut_docs_csWStritanoptiaAlt_50.png

9. Miscilanious Pallets

These pallets are taken from various sources. Many of them are aviable in the NCAR collection of color maps. In some cases I have modified these maps from the origonal sources.

csFPblAqGrYeOrReVi200

color_lut_docs_csFPblAqGrYeOrReVi200_50.png
color_lut_docs_csFPblAqGrYeOrReVi200C_50.png
csFPcircular12

color_lut_docs_csFPcircular12_50.png
color_lut_docs_csFPcircular12C_50.png
csFPcircular24

color_lut_docs_csFPcircular24_50.png
color_lut_docs_csFPcircular24C_50.png
csFPcmoceanAlgae

color_lut_docs_csFPcmoceanAlgae_50.png
color_lut_docs_csFPcmoceanAlgaeC_50.png
csFPcmoceanAmp

color_lut_docs_csFPcmoceanAmp_50.png
color_lut_docs_csFPcmoceanAmpC_50.png
csFPcmoceanBalance

color_lut_docs_csFPcmoceanBalance_50.png
color_lut_docs_csFPcmoceanBalanceC_50.png
csFPcmoceanCurl

color_lut_docs_csFPcmoceanCurl_50.png
color_lut_docs_csFPcmoceanCurlC_50.png
csFPcmoceanDeep

color_lut_docs_csFPcmoceanDeep_50.png
color_lut_docs_csFPcmoceanDeepC_50.png
csFPcmoceanDense

color_lut_docs_csFPcmoceanDense_50.png
color_lut_docs_csFPcmoceanDenseC_50.png
csFPcmoceanHaline

color_lut_docs_csFPcmoceanHaline_50.png
color_lut_docs_csFPcmoceanHalineC_50.png
csFPcmoceanIce

color_lut_docs_csFPcmoceanIce_50.png
color_lut_docs_csFPcmoceanIceC_50.png
csFPcmoceanTempo

color_lut_docs_csFPcmoceanTempo_50.png
color_lut_docs_csFPcmoceanTempoC_50.png
csFPmplBrBG

color_lut_docs_csFPmplBrBG_50.png
color_lut_docs_csFPmplBrBGC_50.png
csFPmplOcean

color_lut_docs_csFPmplOcean_50.png
color_lut_docs_csFPmplOceanC_50.png
csFPmplOranges

color_lut_docs_csFPmplOranges_50.png
color_lut_docs_csFPmplOrangesC_50.png
csFPneoDdivVegetationA

color_lut_docs_csFPneoDdivVegetationA_50.png
color_lut_docs_csFPneoDdivVegetationAC_50.png
csFPneoDivVegetationC

color_lut_docs_csFPneoDivVegetationC_50.png color_lut_docs_csFPneoDivVegetationCC_50.png
csFPneoModisNdvi

color_lut_docs_csFPneoModisNdvi_50.png
color_lut_docs_csFPneoModisNdviC_50.png

10. Binary Pallets

These are really just two color fixed pallets; however, they are generally used as infinite pallets that take on the first color for even indexes and the second color for odd indexes. Unlike fixed pallets, these do not have a "continuous" option and they are restricted to RGB corner colors.

csBin01

color_lut_docs_csBin01_50.png
csBinGB

color_lut_docs_csBinGB_50.png
csBinMC

color_lut_docs_csBinMC_50.png
csBinMY

color_lut_docs_csBinMY_50.png
csBinRB

color_lut_docs_csBinRB_50.png
csBinRG

color_lut_docs_csBinRG_50.png
csBinYC

color_lut_docs_csBinYC_50.png

11. Predefined Color Scheme Cross Reference

11.1. Greys

Note csCubeHelix_tpl with very small amplitude produces greys similar to csPGrey3x & csPGrey4x.

csPGrey3x

color_lut_docs_csPGrey3x_50.png
csPGrey4x

color_lut_docs_csPGrey4x_50.png
csCBGreys

color_lut_docs_csCBGreys_50.png
color_lut_docs_csCBGreysC_50.png
csBin01

color_lut_docs_csBin01_50.png
csPLYgrey

color_lut_docs_csPLYgrey_50.png
csPLYquad

color_lut_docs_csPLYquad_50.png
csCCdiag01

color_lut_docs_csCCdiag01_50.png
csCCu0W

color_lut_docs_csCCu0W_50.png

11.2. Circular

Note csCC_tpl can be used to make circular color schemes – any cycle in the color cube vertex graph forms a circular color scheme.

Note csPLY_tpl can be used to make circular color schemes – any closed parametric curve in the RGB color cube space forms a circular color scheme.

csFPblAqGrYeOrReVi200

color_lut_docs_csFPblAqGrYeOrReVi200_50.png
color_lut_docs_csFPblAqGrYeOrReVi200C_50.png
csFPcircular12

color_lut_docs_csFPcircular12_50.png
color_lut_docs_csFPcircular12C_50.png
csFPcircular24

color_lut_docs_csFPcircular24_50.png
color_lut_docs_csFPcircular24C_50.png
csCColdeRainbow

color_lut_docs_csCColdeRainbow_50.png
csPLYhsvRB

color_lut_docs_csPLYhsvRB_50.png
csCCconsTwo

color_lut_docs_csCCconsTwo_50.png
csCCconsOne

color_lut_docs_csCCconsOne_50.png

11.3. Divergent

csFPcmoceanBalance

color_lut_docs_csFPcmoceanBalance_50.png
color_lut_docs_csFPcmoceanBalanceC_50.png
csFPcmoceanCurl

color_lut_docs_csFPcmoceanCurl_50.png
color_lut_docs_csFPcmoceanCurlC_50.png
csFPneoDdivVegetationA

color_lut_docs_csFPneoDdivVegetationA_50.png
color_lut_docs_csFPneoDdivVegetationAC_50.png
csFPneoDivVegetationC

color_lut_docs_csFPneoDivVegetationC_50.png color_lut_docs_csFPneoDivVegetationCC_50.png
csFPmplBrBG

color_lut_docs_csFPmplBrBG_50.png
color_lut_docs_csFPmplBrBGC_50.png
csCBBrBG

color_lut_docs_csCBBrBG_50.png
color_lut_docs_csCBBrBGC_50.png
csCBPuOr

color_lut_docs_csCBPuOr_50.png
color_lut_docs_csCBPuOrC_50.png
csCBPiYG

color_lut_docs_csCBPiYG_50.png
color_lut_docs_csCBPiYGC_50.png
csCBPRGn

color_lut_docs_csCBPRGn_50.png
color_lut_docs_csCBPRGnC_50.png
csCBRdBu

color_lut_docs_csCBRdBu_50.png
color_lut_docs_csCBRdBuC_50.png
csCBRdGy

color_lut_docs_csCBRdGy_50.png
color_lut_docs_csCBRdGyC_50.png
csCBRdYlGn

color_lut_docs_csCBRdYlGn_50.png
color_lut_docs_csCBRdYlGnC_50.png
csCBRdYlBu

color_lut_docs_csCBRdYlBu_50.png
color_lut_docs_csCBRdYlBuC_50.png
csCBSpectral

color_lut_docs_csCBSpectral_50.png
color_lut_docs_csCBSpectralC_50.png
csCCdivBWR

color_lut_docs_csCCdivBWR_50.png
csCCdivCWM

color_lut_docs_csCCdivCWM_50.png

11.4. Qualitative

csCBDark2

color_lut_docs_csCBDark2_50.png
csCBPaired

color_lut_docs_csCBPaired_50.png
csCBSet1

color_lut_docs_csCBSet1_50.png
csCBSet2

color_lut_docs_csCBSet2_50.png
csCBSet3

color_lut_docs_csCBSet3_50.png

11.5. Sequential

csCBBlues

color_lut_docs_csCBBlues_50.png
color_lut_docs_csCBBluesC_50.png
csCBBuGn

color_lut_docs_csCBBuGn_50.png
color_lut_docs_csCBBuGnC_50.png
csCBBuPu

color_lut_docs_csCBBuPu_50.png
color_lut_docs_csCBBuPuC_50.png
csCBGnBu

color_lut_docs_csCBGnBu_50.png
color_lut_docs_csCBGnBuC_50.png
csCBGreens

color_lut_docs_csCBGreens_50.png
color_lut_docs_csCBGreensC_50.png
csCBGreys

color_lut_docs_csCBGreys_50.png
color_lut_docs_csCBGreysC_50.png
csCBOranges

color_lut_docs_csCBOranges_50.png
color_lut_docs_csCBOrangesC_50.png
csCBPuBuGn

color_lut_docs_csCBPuBuGn_50.png
color_lut_docs_csCBPuBuGnC_50.png
csCBPuBu

color_lut_docs_csCBPuBu_50.png
color_lut_docs_csCBPuBuC_50.png
csCBPuRd

color_lut_docs_csCBPuRd_50.png
color_lut_docs_csCBPuRdC_50.png
csCBPurples

color_lut_docs_csCBPurples_50.png
color_lut_docs_csCBPurplesC_50.png
csCBRdPu

color_lut_docs_csCBRdPu_50.png
color_lut_docs_csCBRdPuC_50.png
csCBReds

color_lut_docs_csCBReds_50.png
color_lut_docs_csCBRedsC_50.png
csCBYlGnBu

color_lut_docs_csCBYlGnBu_50.png
color_lut_docs_csCBYlGnBuC_50.png
csCBYlGn

color_lut_docs_csCBYlGn_50.png
color_lut_docs_csCBYlGnC_50.png
csCBYlOrBr

color_lut_docs_csCBYlOrBr_50.png
color_lut_docs_csCBYlOrBrC_50.png
csCBYlOrRd

color_lut_docs_csCBYlOrRd_50.png
color_lut_docs_csCBYlOrRdC_50.png
csFPcmoceanAlgae

color_lut_docs_csFPcmoceanAlgae_50.png
color_lut_docs_csFPcmoceanAlgaeC_50.png
csFPcmoceanAmp

color_lut_docs_csFPcmoceanAmp_50.png
color_lut_docs_csFPcmoceanAmpC_50.png
csFPcmoceanDeep

color_lut_docs_csFPcmoceanDeep_50.png
color_lut_docs_csFPcmoceanDeepC_50.png
csFPcmoceanDense

color_lut_docs_csFPcmoceanDense_50.png
color_lut_docs_csFPcmoceanDenseC_50.png
csFPcmoceanHaline

color_lut_docs_csFPcmoceanHaline_50.png
color_lut_docs_csFPcmoceanHalineC_50.png
csFPcmoceanIce

color_lut_docs_csFPcmoceanIce_50.png
color_lut_docs_csFPcmoceanIceC_50.png
csFPcmoceanTempo

color_lut_docs_csFPcmoceanTempo_50.png
color_lut_docs_csFPcmoceanTempoC_50.png
csFPmplOcean

color_lut_docs_csFPmplOcean_50.png
color_lut_docs_csFPmplOceanC_50.png
csFPmplOranges

color_lut_docs_csFPmplOranges_50.png
color_lut_docs_csFPmplOrangesC_50.png
csFPneoModisNdvi

color_lut_docs_csFPneoModisNdvi_50.png
color_lut_docs_csFPneoModisNdviC_50.png
csCCsumRGB & csCColdeFireRamp

color_lut_docs_csCCsumRGB_50.png
csPLYinferno

color_lut_docs_csPLYinferno_50.png
csPLYmagma

color_lut_docs_csPLYmagma_50.png
csPLYparula

color_lut_docs_csPLYparula_50.png
csPLYplasma

color_lut_docs_csPLYplasma_50.png
csPLYviridis

color_lut_docs_csPLYviridis_50.png
csPLYcividis

color_lut_docs_csPLYcividis_50.png
csCHstd

color_lut_docs_csCHstd_50.png
csCHblu

color_lut_docs_csCHblu_50.png
csCHvio

color_lut_docs_csCHvio_50.png