R Color Reference Sheet
R has a built-in collection of 657 colors that you can use in plotting functions by using color names. There are also various facilities to select color sequences more systematically:
- Color palettes and ramps available in packages RColorBrewer and colorRamps.
- R base functions
colorRamp
andcolorRampPalette
that you can use to create your own color sequences by interpolating a set of colors that you provide. - R base functions
rgb
,hsv
, andhcl
that you can use to generate (almost) any color you want.
When producing data visualizations, the choice of proper colors is often a compromise between the requirements dictated by the data visualisation itself and the overall style and color of the article/book/report that the visualization is going to be an element of. Choosing an optimal color palette is not so easy and its handy to have some reference. Inspired by a this sheet by Przemek Biecek I created a variant of an R color reference sheet showing different ways in which you can use and call colors in R when creating visualizations. The sheet fits A4 paper (two pages). On the first page it shows a matrix of all the 657 colors with their names. On the second page, on the left, all palettes from RColorBrewer package are displayed. On the right, selected color ramps available in base R (base package grDevices) and in the contributed package colorRamps. Miniatures below:
You can download the sheet as PDF from here.
Below is a gist with the code creating the sheet as a PDF “rcolorsheet.pdf”. Instead of directly reusing the Przemek’s code I have rewritten the parts that produce the first page (built-in color names) and the part with the ramps using the image
function. I think it is much simpler, less low-level for-looping and a bit more extensible. For example, it is easy to extend the collection of color ramps by providing just additional function name in the form packagename::functionname
to the funnames
vector (any extra package would have to be loaded at the top of the script).
Note that the “colorspace” package also provides a collection of color palettes based on the HCL model. Many of these are rather similar to the ColorBrewer palettes but provide explicit formulas for construction and hence leave more room to play around with the palettes. Unlike the palettes from the colorRamp package, these are balanced with respect to their perceptual properties. See the corresponding manuscript (http://dx.doi.org/10.1016/j.csda.2008.11.033) for more details. And also explore the choose_palette() GUI which allows to explore palettes on a wide range of (artificial) data examples and for color-blind viewers etc.
Hi Achim. Thanks. I was not familiar with “colorspace”, I’ll have a look at it.