Ferret Color Palettes
How can I find a good color palette for my plot?
The above illustrates several palettes used to plot SST and topography. Here is the Ferret script:
! Plot sst USE coads_climatology SET REGION/L=1 SET VIEW ul FILL/NOLABELS/PALETTE=ocean_temp sst; GO land ! plot temperature minus mean with a centered palette SET VIEW UR FILL/NOLABELS/PALETTE=white_centered sst - sst[x=@ave,y=@ave]; GO fland ! use a greyscale paletete SET VIEW LL FILL/NOLABELS/PALETTE=greyscale sst; GO land ! plot a relief map using the land_sea palette USE etopo120 SET VIEW lr FILL/NOLABELS/PALETTE=land_sea rose
A number of palette files are available with Ferret. They are designed to highlight different kinds of data fields and to allow sets of plots to have a standard appearance. Some trial and error may be necessary to choose the palette that looks best on a given printer or other output device. A variety of palette files are illustrated below.
See the Ferret Users Guide, the Section on the PALETTE command, and in the section about customizing plots and palette creation, for more on specifying a palette with the plot commands, and about the different kinds of palettes. There is also a palette_demo.jnl script about the different kinds of palettes.
In the scientific graphics community, there is much discussion of best practices with color palettes. Here are some references which discuss the shortcomings of rainbow palettes, and good alternatives. Some of these alternatives are included in the Ferret distribution and are discussed in the FAQ's listed below
A Better Default Colormap for Matplotlib, https://youtu.be/xAoljeRJ3lU
Also see these related FAQ's,
- Howcan I produce a plot with both colors and patterns? for an example using the pattern fill and shade keys,
- Gotany good ideas for black & white graphics? for a discussion of filled plotting using black and white palettes and patterns.
- Which of Ferret's color palettes best convey information to color-impaired viewers?
- What palettes will show up well if I photocopy the output, or display it using LCD projectors, Laptop and CRT screens, and color printers?
- How can I create a palette to show out-of-bounds data?
Here is a table showing a range of available palettes. For the Percent palettes, the script "go try_palette palette_name" has been used to make the examples. This shows the palette at several different resolutions.The Levels and Values palettes are shown with examples from datasets to point out their advantages.
|Palette name||Description||Type of Palette||Example Plot|
|default||The default palette; range through a rainbow of colors||percent|
|ocean_temp||Shows range of ocean temperature by value, so plots with differentranges of values will have the same colors for given temperatures. Thesetwo plots are the same except for the region. The same color represents the same temperature in both.||value|
|rainbow_by_levels||A variety of colors assigned by level: each level gets one color. TheLEVELS qualifier is used to specify six levels for the first plot and eighteen for the second.||level|
|rainbow||The same as "default"||percent|
|rnb||The same as "default"||percent|
|rnb2||Another rainbow of colors||percent|
|saz2||Yet another rainbow of colors||percent|
|light_rainbow||Similar to rainbow, but with washed-out lighter colors||percent|
|broad||Designed to distinguish levels over a broad range||percent|
|dark_land_sea||For topography/ bathymetry plots. Brown and green on land, blue for sea||percent|
|land_sea||A lighter palette for topography/ bathymetry plots||percent|
|ocean_blue||A range of blues for bathymetry plots||percent|
|dark_terrestrial||A range of green and brown for topography plots||percent|
|terrestrial||A lighter palette for topography plots.||percent|
|modulo||A palette whose colors on either end match||percent|
|no_blue||Palette with no blue tones||percent|
|no_green||Palette with no green tones||percent|
|no_red||Palette with no red tones||percent|
|low_blue||Palette with low ammount of blue||percent|
|low_green||Palette with low ammount of green||percent|
|low_red||Palette with low ammount of red||percent|
|centered||Distinguishes values above and below the middle level; warm colorsabove and cool colors below.||percent|
|white_centered||Another centered palette with white as the central color.
A variation on this is to make a copy of the palette file and create a similar one where white is replaced by very light gray, to distinguish it from the white of missing-data.
|no_blue_centered||Another centered palette with no blue tones||percent|
|no_green_centered||Another centered palette with no green tones||percent|
|no_red_centered||Another centered palette with no red tones||percent|
|grayscale (also greyscale)||Series of grays||percent|
(and inverse greyscale)
|With high and low reversed||percent|
|bluescale||Series of blues||percent|
|inverse bluescale||With high and low reversed||percent|
|greenscale||Series of greens||percent|
|inverse_greenscale||With high and low reversed||percent|
|redscale||Series of reds||percent|
|inverse_redscale||With high and low reversed||percent|
|One color in the palette. These are useful for colorbars, fillingbetween curves, making backgrounds, and filling polygons to make different colored dots on a plot, as in marking station locations. For examples see the FAQ:Howcan I fill between two curves? and the Ferret v5.6 release notes||