Ferret Color Palettes
Question:
How can I find a good color palette for my plot?
Example:
Custom color palettes for ocean-temperature, values centered around zero, gray-scale, and customized for topography/bathymetry.
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 ! The ocean-temp palette 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
Explanation:
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
http://www.climate-lab-book.ac.uk/2014/end-of-the-rainbow/
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 with examples. For the Percent palettes, a range of colors is shown.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; The viridis palette | percent |
|
||
rainbow | The rainbow palette | percent |
|
||
ocean_temp | Shows range of ocean temperature by value, so plots with different ranges of values will have the same colors for given temperatures. These two plots are the same except for the region. The same color represents the same temperature in both. | value |
|
||
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 |
|
||
inferno | inferno palette, based on matpltlib and R palettes | percent |
|
||
magma | magma palette, based on matpltlib and R palettes | percent |
|
||
cmocean_algae | algae from cmocean perceptually-uniform colormaps | percent |
|
||
cmocean_amp | amp from cmocean perceptually-uniform colormaps | percent |
|
||
cmocean_balance | balance from cmocean perceptually-uniform colormaps | percent |
|
||
cmocean_curl | curl from cmocean perceptually-uniform colormaps | percent |
|
||
cmocean_deep | deep from cmocean perceptually-uniform colormaps | percent |
|
||
cmocean_delta | delta from cmocean perceptually-uniform colormaps | percent |
|
||
cmocean_dense | dense from cmocean perceptually-uniform colormaps | percent |
|
||
cmocean_gray | gray from cmocean perceptually-uniform colormaps | percent |
|
||
cmocean_haline | haline from cmocean perceptually-uniform colormaps | percent |
|
||
cmocean_ice | ice from cmocean perceptually-uniform colormaps | percent |
|
||
cmocean_matter | matter from cmocean perceptually-uniform colormaps | percent |
|
||
cmocean_oxy | oxy from cmocean perceptually-uniform colormaps | percent |
|
||
cmocean_phase | phase from cmocean perceptually-uniform colormaps | percent |
|
||
cmocean_solar | solar from cmocean perceptually-uniform colormaps | percent |
|
||
cmocean_speed | speed from cmocean perceptually-uniform colormaps | percent |
|
||
cmocean_tempo | tempo from cmocean perceptually-uniform colormaps | percent |
|
||
cmocean_thermal | thermal from cmocean perceptually-uniform colormaps | percent |
|
||
cmocean_turbid | turbid from cmocean perceptually-uniform colormaps | percent |
|
||
rainbow_by_levels | A variety of colors assigned by level: each level gets one color. The LEVELS qualifier is used to specify six levels for the first plot and eighteen for the second. | level |
|
||
rnb2 | Another rainbow of colors with fewer greens | 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 |
|
||
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 amount of blue | percent |
|
||
low_green | Palette with low amount of green | percent |
|
||
low_red | Palette with low amount of red | percent |
|
||
centered | Distinguishes values above and below the middle level; warm colors above and cool colors below. | percent |
|
||
centered diff | Distinguishes values above and below the middle level; bright colors with warm colors above 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. |
percent |
|
||
grayscale (also greyscale) | Series of grays | percent |
|
||
inverse_grayscale (and inverse greyscale) |
With high and low reversed | percent |
|
||
bluescale |
Series of blues. See also redscale, greenscale,reverse_bluescale, and so forth, which are the same palettes with high and low reversed. |
percent |
|
||
Single colors black |
One color in the palette. These are useful for colorbars, filling between 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 |
|