ggplot2 (version 0.9.0)

scale_colour_gradient: Smooth gradient between two colours


Default colours are generated with munsell and mnsl(c("2.5PB 2/4", "2.5PB 7/10"). Generally, for continuous colour scales you want to keep hue constant, but vary chroma and luminance. The munsell package makes this easy to do using the Munsell colour system.


scale_colour_gradient(..., low = "#132B43",
    high = "#56B1F7", space = "Lab", na.value = "grey50")

scale_fill_gradient(..., low = "#132B43", high = "#56B1F7", space = "Lab", na.value = "grey50")

scale_colour_continuous(..., low = "#132B43", high = "#56B1F7", space = "Lab", na.value = "grey50")

scale_fill_continuous(..., low = "#132B43", high = "#56B1F7", space = "Lab", na.value = "grey50")

scale_color_continuous(..., low = "#132B43", high = "#56B1F7", space = "Lab", na.value = "grey50")

scale_color_gradient(..., low = "#132B43", high = "#56B1F7", space = "Lab", na.value = "grey50")


Other arguments passed on to continuous_scale to control name, limits, breaks, labels and so forth.
Colour to use for missing values
colour for low end of gradient.
colour for high end of gradient.
colour space in which to calculate gradient. "Lab" usually best unless gradient goes through white.

See Also

seq_gradient_pal for details on underlying palette

Other colour scales: scale_color_brewer, scale_color_discrete, scale_color_gradient2, scale_color_gradientn, scale_color_grey, scale_color_hue, scale_colour_brewer, scale_colour_discrete, scale_colour_gradient2, scale_colour_gradientn, scale_colour_grey, scale_colour_hue, scale_fill_brewer, scale_fill_discrete, scale_fill_gradient2, scale_fill_gradientn, scale_fill_grey, scale_fill_hue


Run this code
# It's hard to see, but look for the bright yellow dot
# in the bottom right hand corner
dsub <- subset(diamonds, x > 5 & x < 6 & y > 5 & y < 6)
(d <- qplot(x, y, data=dsub, colour=z))
# That one point throws our entire scale off.  We could
# remove it, or manually tweak the limits of the scale

# Tweak scale limits.  Any points outside these limits will not be
# plotted, and will not affect the calculation of statistics, etc
d + scale_colour_gradient(limits=c(3, 10))
d + scale_colour_gradient(limits=c(3, 4))
# Setting the limits manually is also useful when producing
# multiple plots that need to be comparable

# Alternatively we could try transforming the scale:
d + scale_colour_gradient(trans = "log")
d + scale_colour_gradient(trans = "sqrt")

# Other more trivial manipulations, including changing the name
# of the scale and the colours.

d + scale_colour_gradient("Depth")
d + scale_colour_gradient(expression(Depth[mm]))

d + scale_colour_gradient(limits=c(3, 4), low="red")
d + scale_colour_gradient(limits=c(3, 4), low="red", high="white")
# Much slower
d + scale_colour_gradient(limits=c(3, 4), low="red", high="white", space="Lab")
d + scale_colour_gradient(limits=c(3, 4), space="Lab")

# scale_fill_continuous works similarly, but for fill colours
(h <- qplot(x - y, data=dsub, geom="histogram", binwidth=0.01, fill=..count..))
h + scale_fill_continuous(low="black", high="pink", limits=c(0,3100))

# Colour of missing values is controlled with na.value:
miss <- sample(c(NA, 1:5), nrow(mtcars), rep = TRUE)
qplot(mpg, wt, data = mtcars, colour = miss)
qplot(mpg, wt, data = mtcars, colour = miss) +
  scale_colour_gradient(na.value = "black")

Run the code above in your browser using DataCamp Workspace