10.4 Binned colour scales
Colour scales also come in binned versions. The default scale is scale_fill_binned()
which in turn defaults to scale_fill_steps()
. As with the binned position scales discussed in Section 9.4 these scales have an n.breaks
argument that controls the number of discrete colour categories created by the scale. Counterintuitively—because the human visual system is very good at detecting edges—this can sometimes make a continuous colour gradient easier to perceive:
+ scale_fill_binned() erupt
+ scale_fill_steps() erupt
+ scale_fill_steps(n.breaks = 8) erupt
In other respects scale_fill_steps()
is analogous to scale_fill_gradient()
, and allows you to construct your own two-colour gradients. There is also a three-colour variant scale_fill_steps2()
and n-colour scale variant scale_fill_stepsn()
that behave similarly to their continuous counterparts:
+ scale_fill_steps(low = "grey", high = "brown") erupt
+ scale_fill_steps2(low = "grey", mid = "white", high = "brown", midpoint = .02) erupt
+ scale_fill_stepsn(n.breaks = 12, colours = terrain.colors(12)) erupt
A brewer analog for binned scales also exists, and is called scale_fill_fermenter()
:
+ scale_fill_fermenter(n.breaks = 9) erupt
+ scale_fill_fermenter(n.breaks = 9, palette = "Oranges") erupt
+ scale_fill_fermenter(n.breaks = 9, palette = "PuOr") erupt
Note that like the discrete scale_fill_brewer()
—and unlike the continuous scale_fill_distiller()
—the binned function scale_fill_fermenter()
does not interpolate between the brewer colours, and if you set n.breaks
larger than the number of colours in the palette a warning message will appear and some colours will not be displayed.