Last chance! 50% off unlimited learning
Sale ends in
scale_colour_gradient2(..., low = muted("red"), mid = "white",
high = muted("blue"), midpoint = 0, space = "rgb",
na.value = "grey50", guide = "colourbar")scale_fill_gradient2(..., low = muted("red"), mid = "white",
high = muted("blue"), midpoint = 0, space = "rgb",
na.value = "grey50", guide = "colourbar")
scale_color_gradient2(..., low = muted("red"), mid = "white",
high = muted("blue"), midpoint = 0, space = "rgb",
na.value = "grey50", guide = "colourbar")
discrete_scale
to control name, limits, breaks, labels and so forth."colourbar"
for continuous
colour bar, or "legend"
for discrete colour legend.scale_color_brewer
,
scale_color_distiller
,
scale_colour_brewer
,
scale_colour_distiller
,
scale_fill_brewer
,
scale_fill_distiller
;
scale_color_continuous
,
scale_color_gradient
,
scale_colour_continuous
,
scale_colour_gradient
,
scale_fill_continuous
,
scale_fill_gradient
;
scale_color_discrete
,
scale_color_hue
,
scale_colour_discrete
,
scale_colour_hue
,
scale_fill_discrete
,
scale_fill_hue
;
scale_color_gradientn
,
scale_colour_gradientn
,
scale_fill_gradientn
;
scale_color_grey
,
scale_colour_grey
,
scale_fill_grey
dsub <- subset(diamonds, x > 5 & x < 6 & y > 5 & y < 6)
dsub$diff <- with(dsub, sqrt(abs(x-y))* sign(x-y))
(d <- qplot(x, y, data=dsub, colour=diff))
d + scale_colour_gradient2()
# Change scale name
d + scale_colour_gradient2(expression(sqrt(abs(x - y))))
d + scale_colour_gradient2("Difference\nbetween\nwidth and\nheight")
# Change limits and colours
d + scale_colour_gradient2(limits=c(-0.2, 0.2))
# Using "muted" colours makes for pleasant graphics
# (and they have better perceptual properties too)
library(scales) # for muted
d + scale_colour_gradient2(low="red", high="blue")
d + scale_colour_gradient2(low=muted("red"), high=muted("blue"))
# Using the Lab colour space also improves perceptual properties
# at the price of slightly slower operation
d + scale_colour_gradient2(space="Lab")
# About 5% of males are red-green colour blind, so it's a good
# idea to avoid that combination
d + scale_colour_gradient2(high=muted("green"))
# We can also make the middle stand out
d + scale_colour_gradient2(mid=muted("green"), high="white", low="white")
# or use a non zero mid point
(d <- qplot(carat, price, data=diamonds, colour=price/carat))
d + scale_colour_gradient2(midpoint=mean(diamonds$price / diamonds$carat))
# Fill gradients work much the same way
p <- qplot(letters[1:5], 1:5, fill= c(-3, 3, 5, 2, -2), geom = "bar",
stat = "identity")
p + scale_fill_gradient2("fill")
# Note how positive and negative values of the same magnitude
# have similar intensity
Run the code above in your browser using DataLab