View source: R/scale_cubehelix.R
cubehelix_scale | R Documentation |
The CubeHelix color palette, by Dave Green (Unlicense license).
cubehelix_scale(
h = 300,
rot = -1.5,
c = 0.5,
l = c(0.1, 0.9),
gamma = 1,
domain = c(0, 1),
reverse = FALSE,
na.value = NULL,
extrapolate = FALSE
)
cubehelix_map(x, ...)
cubehelix_palette(...)
cubehelix_colors(n, ...)
scale_color_cubehelix_c(
...,
h = 300,
rot = -1.5,
c = 0.5,
l = c(0.1, 0.9),
gamma = 1,
reverse = FALSE,
na.value = NULL,
guide = "colorbar"
)
scale_fill_cubehelix_c(
...,
h = 300,
rot = -1.5,
c = 0.5,
l = c(0.1, 0.9),
gamma = 1,
reverse = FALSE,
na.value = NULL,
guide = "colorbar"
)
scale_color_cubehelix_d(
...,
h = 300,
rot = -1.5,
c = 0.5,
l = c(0.1, 0.9),
gamma = 1,
reverse = FALSE,
na.value = "#grey50",
guide = "legend"
)
scale_fill_cubehelix_d(
...,
h = 300,
rot = -1.5,
c = 0.5,
l = c(0.1, 0.9),
gamma = 1,
reverse = FALSE,
na.value = "#grey50",
guide = "legend"
)
h |
hue, either an angle around the color wheel, in [0,360] (angles outside of the range are rotated back to within [0, 360]: 380 = 20, -15 = 345, etc.), or a color (hex or named) from which the hue is extracted (by function |
rot |
number of rotations of the helix in RGB space, in |
c |
chromacity, number in |
l |
lightness, number in |
gamma |
gamma contrast factor, in |
domain |
vector of two values between which the scale is computed. |
reverse |
whether to reverse the order of colors along the scale. |
na.value |
value to return for missing values in the input. Can be either a color, |
extrapolate |
when |
x |
a vector whose values will be coerced to numbers and mapped to colors. |
... |
passed to |
n |
number of colors to extract from the color palette. |
guide |
type of guide for the legend ("colorbar" for a continuous colorbar, "legend" for a categorical guide) or guide object itself. |
*_scale
returns a function. This function takes a single argument (x
: a numeric vector), maps its values to colors, and returns thee colors as hex codes.
*_map
is a shortcut for *_scale(domain=range(x))(x)
: it creates a scale that spans the range of values in argument x
, maps the content of x
on that scale, and returns the colors.
*_palette
returns a function. This function takes an integer (n
) as argument, picks n
colors evenly spaced along the scale, and returns them as hex codes.
*_colors
is a shortcut for *_palette()(n)
and directly returns n
evenly spaced colors. It is equivalent to built-in functions such as heat.colors
, topo.colors
, etc.
scale_*
return a ggplot2 scale, either discrete (similar to scale_color_discrete
) or continuous (similar to scale_color_continuous
).
https://www.mrao.cam.ac.uk/~dag/CUBEHELIX/
Other color scales and palettes:
brewer_scale()
,
chroma_scale()
,
etopo_scale()
,
hue_scale()
,
inferno_scale()
,
interp_scale()
,
light_scale()
,
magma_scale()
,
plasma_scale()
,
turbo_scale()
,
viridis_scale()
,
vsup_scale()
,
wikitopo_scale()
# Basic color palettes
show_col(
cubehelix_colors(20),
cubehelix_colors(20, reverse=TRUE)
)
# Rotating less gives more sensible scales
show_col(
cubehelix_colors(20, h=300, rot=-0.75),
cubehelix_colors(20, h=300, rot=0.5)
)
# No rotation gives single hue palettes
show_col(
cubehelix_colors(20, h=0 , rot=0, c=0.8),
cubehelix_colors(20, h=120, rot=0, c=0.8),
cubehelix_colors(20, h=200, rot=0, c=0.8)
)
# Examine the effect of the other arguments
show_col(
cubehelix_colors(20, h=300, rot=0.5),
# smaller range of lightness change
cubehelix_colors(20, h=300, rot=0.5, l=c(0.2, 0.7)),
# change chromacity
cubehelix_colors(20, h=300, rot=0.5, c=0.9),
cubehelix_colors(20, h=300, rot=0.5, c=0.3),
# change gamma contrast factor
cubehelix_colors(20, h=300, rot=0.5, gamma=0.5),
cubehelix_colors(20, h=300, rot=0.5, gamma=1.5)
)
# Plot the Maunga Whau volcano elevation map: a continuous variable
image(maunga, col=cubehelix_colors(100, rot=-0.75))
contour(maunga, col=alpha("black", 0.4), add=TRUE)
persp(maunga, theta=50, phi=25, scale=FALSE, expand=2,
border=alpha("black", 0.4),
col=cubehelix_map(persp_facets(maunga$z), rot=-0.75))
## Not run:
# in spinning 3D
library("rgl")
persp3d(maunga, aspect=c(1,0.7,0.2), axes=FALSE, box=FALSE,
col=cubehelix_map(maunga$z, rot=-0.75))
play3d(spin3d(axis=c(0, 0, 1), rpm=10), duration=6)
# or with ggplot2
library(ggplot2)
ggplot(maungaxyz) + coord_fixed() +
geom_raster(aes(x, y, fill=z)) +
scale_fill_cubehelix_c(rot=-0.75)
## End(Not run)
# For discrete variables, using saturated colors along a scale of
# constant lightness gives a good hue-only scale
attach(iris)
plot(Petal.Length, Sepal.Length, pch=19,
col=cubehelix_map(
Species,
h=0, rot=0.75, # Start from red-ish and do not rotate
# full circle to avoid falling back on red
c=1, # Use saturated colors
l=c(0.6, 0.6) # Do not vary lightness
)
)
legend(1, 8, legend=levels(Species), pch=19,
col=cubehelix_map(1:3, h=0, rot=0.75, c=1, l=c(0.6, 0.6)))
detach(iris)
## Not run: ggplot(iris) +
geom_point(aes(Petal.Length, Sepal.Length, color=Species)) +
scale_color_cubehelix_d(h=0, rot=0.75, c=1, l=c(0.6, 0.6))
## End(Not run)
# But see ?hue_scale for a simpler solution
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.