makecmap {squash} | R Documentation |
Generate a color map from numeric values to colors
Description
Generate a color map from numeric values to a contiguous set of colors.
Usage
makecmap(x, n = 10, breaks = pretty,
symm = FALSE, base = NA,
colFn = jet, col.na = NA,
right = FALSE, include.lowest = FALSE, ...)
Arguments
x |
A vector of numbers (only the finite range is used). |
n |
Approximate number of color levels desired. |
breaks |
A function to generate breakpoints, or the breakpoints themselves. |
symm |
Extend the mapping domain to be symmetric around zero? |
base |
Base for log scale, or NA to use a linear scale. |
colFn |
A function that generates contiguous colors. |
col.na |
Color to use for missing values. |
right |
Logical; if TRUE, the intervals will be closed on the right (and open on the left). |
include.lowest |
Logical, indicating if an |
... |
Further arguments to |
Details
The general point of this function is to automatically generate a mapping that can be used in combination with cmap
to represent numeric data with colors in a consistent way.
colFn
should be a function that returns a vector of colors of specified length, such as rainbow
, greyscale
. Custom functions of this type can be generated with colorRampPalette
.
The breakpoints can be specified explicitly by setting breaks
to a vector of numbers, in which case x
is ignored. Otherwise, the breakpoints are chosen to be nice, relatively round values (using pretty
, or another function passed to breaks
) covering the finite range of x
.
If symm
is TRUE, the map domain is extended such that it is symmetric around zero. This can be useful when using divergent color palettes to ensure that the zero point is a neutral color.
If base
is specified, the breakpoints are generated using log-transformed data. However, setting breaks = prettyLog
might be preferable.
Value
A list with the following components:
breaks |
Breakpoints (numeric vector). |
colors |
Colors (character or numeric vector). |
base |
(as supplied in arguments) |
col.na |
(as supplied in arguments) |
right |
(as supplied in arguments) |
include.lowest |
(as supplied in arguments) |
See Also
cmap
and colorgram
use the mappings generated by this function.
hkey
plots a color key.
Consider setting breaks = prettyInt
or breaks = prettyLog
Examples
attach(iris)
map1 <- makecmap(Petal.Length)
myColors <- cmap(Petal.Length, map = map1)
plot(Sepal.Length, Sepal.Width, col = myColors, pch = 16)
hkey(map1, title = 'Petal.Length')
## Compare the 'breaks' element in the following:
x <- rnorm(100) * 1000
str(makecmap(x))
str(makecmap(x, breaks = c(-Inf, -1000, 0, 1000, Inf)))
str(makecmap(x, breaks = prettyLog))