Solution
Use one of the scales listed in Table 12-1.
Table 12-1. Discrete fill and color scales
Fill scale
Color scale
Description
scale_fill_discrete() scale_colour_discrete() Colors evenly spaced around the color wheel (same as
hue)
scale_fill_hue()
scale_colour_hue()
Colors evenly spaced around the color wheel (same as
discrete)
scale_fill_grey()
scale_colour_grey()
Greyscale palette
scale_fill_brewer()
scale_colour_brewer()
ColorBrewer palettes
scale_fill_manual()
scale_colour_manual()
Manually specified colors
In  the  example here  we’ll  use  the  default palette  (hue),  and a ColorBrewer  palette
(Figure 12-4):
library(gcookbook) # For the data set
# Base plot
<- ggplot(uspopage, aes(x=Year, y=Thousands, fill=AgeGroup)) + geom_area()
# These three have the same effect
p
+ scale_fill_discrete()
+ scale_fill_hue()
# ColorBrewer palette
+ scale_fill_brewer()
Figure 12-4. Left: default palette (using hue); right: a ColorBrewer palette
12.3. Using a Different Palette for a Discrete Variable  |  255
Pdf text search - search text inside PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Learn how to search text in PDF document and obtain text content and location information
cannot select text in pdf file; can't select text in pdf file
Pdf text search - VB.NET PDF Text Search Library: search text inside PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Learn How to Search Text in PDF Document and Obtain Text Content and Location Information in VB.NET application
how to search text in pdf document; pdf find and replace text
Discussion
Changing a palette is a modification of the color (or fill) scale: it involves a change in
the mapping from numeric or categorical values to aesthetic attributes. There are two
types of scales that use colors: fill scales and color scales.
With scale_fill_hue(), the colors are taken from around the color wheel in the HCL
(hue-chroma-lightness) color space. The default lightness value is 65 on a scale from
0–100. This is good for filled areas, but it’s a bit light for points and lines. To make the
colors darker for points and lines, as in Figure 12-5 (right), set the value of l (luminance/
lightness):
# Basic scatter plot
<- ggplot(heightweight, aes(x=ageYear, y=heightIn, colour=sex)) +
geom_point()
# Default lightness = 65
h
# Slightly darker
+ scale_colour_hue(l=45)
Figure 12-5. Left: points with default lightness; right: with lightness set to 45
The ColorBrewer package provides a number of palettes. You can generate a graphic
showing all of them, as shown in Figure 12-6:
library(RColorBrewer)
display.brewer.all()
The  ColorBrewer palettes can be selected by  name.  For  example,  this  will use the
Oranges palette (Figure 12-7):
+ scale_fill_brewer(palette="Oranges")
256  |  Chapter 12: Using Colors in Plots
C# Word - Search and Find Text in Word
C# Word - Search and Find Text in Word. Learn How to Search Text in PDF Document and Obtain Text Content and Location Information. Overview.
select text in pdf; how to select text in a pdf
C# PowerPoint - Search and Find Text in PowerPoint
C# PowerPoint - Search and Find Text in PowerPoint. Learn How to Search Text in PDF Document and Obtain Text Content and Location Information. Overview.
convert a scanned pdf to searchable text; how to make a pdf document text searchable
Figure 12-6. All the ColorBrewer palettes
12.3. Using a Different Palette for a Discrete Variable  |  257
C# PDF delete text Library: delete, remove text from PDF file in
The following C# coding example illustrates how to perform PDF text deleting function in your .NET project, according to search option. // Open a document.
searching pdf files for text; pdf search and replace text
C# PDF replace text Library: replace text in PDF content in C#.net
The following C# coding example illustrates how to perform PDF text replacing function in your .NET project, according to search option. // Open a document.
pdf text searchable; select text in pdf file
Figure 12-7. Using a named ColorBrewer palette
You can also use a palette of greys. This is useful for print when the output is in black
and white. The default is to start at 0.2 and end at 0.8, on a scale from 0 (black) to 1
(white), but you can change the range, as shown in Figure 12-8.
+ scale_fill_grey()
# Reverse the direction and use a different range of greys
+ scale_fill_grey(start=0.7, end=0)
Figure 12-8. Left: using the default grey palette; right: a different grey palette
See Also
See Recipe 10.4 for more information about reversing the legend.
To select colors manually, see Recipe 12.4.
For more about ColorBrewer, see http://colorbrewer.org.
258  |  Chapter 12: Using Colors in Plots
VB.NET PDF replace text library: replace text in PDF content in vb
The following coding example illustrates how to perform PDF text replacing function in your VB.NET project, according to search option.
search pdf files for text; pdf text search tool
VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
PDF Read. Text: Extract Text from PDF. Text: Search Text in PDF. Image: Extract Image from PDF. Easy to search PDF text in whole PDF document.
find text in pdf files; text searchable pdf
12.4. Using a Manually Defined Palette for a
Discrete Variable
Problem
You want to use different colors for a discrete mapped variable.
Solution
In the example here, we’ll manually define colors by specifying values with scale_col
our_manual() (Figure 12-9). The colors can be named, or they can be specified with
RGB values:
library(gcookbook) # For the data set
# Base plot
<- ggplot(heightweight, aes(x=ageYear, y=heightIn, colour=sex)) + geom_point()
# Using color names
+ scale_colour_manual(values=c("red""blue"))
# Using RGB values
+ scale_colour_manual(values=c("#CC6666", "#7777DD"))
Figure 12-9. Left: scatter plot with named colors; right: with slightly different RGB colors
For fill scales, use scale_fill_manual() instead.
12.4. Using a Manually Defined Palette for a Discrete Variable  |  259
C# PDF Text Highlight Library: add, delete, update PDF text
The following C# coding example illustrates how to perform PDF text highlight function in your .NET project, according to search option. // Open a document.
how to make pdf text searchable; pdf find text
C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
Page: Rotate a PDF Page. PDF Read. Text: Extract Text from PDF. Text: Search Text in PDF. Easy to search PDF text in whole PDF document.
pdf select text; how to select text on pdf
Discussion
The order of the items in the values vector matches the order of the factor levels for the
discrete scale. In the preceding example, the order of sex is f, then m, so the first item
in values goes with f and the second goes with m. Here’s how to see the order of factor
levels:
levels(heightweight$sex)
"f" "m"
If the variable is a character vector, not a factor, it will automatically be converted to a
factor, and by default the levels will appear in alphabetical order.
It’s possible to specify the colors in a different order by using a named vector:
+ scale_colour_manual(values=c(m="blue", f="red"))
There is a large set of named colors in R, which you can see by running color(). Some
basic color names are useful: "white""black""grey80""red""blue", "darkred",
and so on. There are many other named colors, but their names are generally not very
informative (I certainly have no idea what "thistle3" and "seashell" look like), so
it’s often easier to use numeric RGB values for specifying colors.
RGB  colors  are  specified  as  six-digit  hexadecimal  (base-16)  numbers  of  the  form
"#RRGGBB". In hexadecimal, the digits go from 0 to 9, and then continue with A (10 in
base 10) to F (15 in base 10). Each color is represented by two digits and can range from
00 to FF (255 in base 10). So, for example, the color "#FF0099" has a value of 255 for
red, 0 for green, and 153 for blue, resulting in a shade of magenta. The hexadecimal
numbers for each color channel often repeat the same digit because it makes them a
little easier to read, and because the precise value of the second digit has a relatively
insignificant effect on appearance.
Here are some rules of thumb for specifying and adjusting RGB colors:
• In general, higher numbers are brighter and lower numbers are darker.
• To get a shade of grey, set all the channels to the same value.
• The opposites of RGB are CMY: Cyan, Magenta, and Yellow. Higher values for the
red channel make it more red, and lower values make it more cyan. The same is true
for the pairs green and magenta, and blue and yellow.
See Also
chart of RGB color codes.
260  |  Chapter 12: Using Colors in Plots
12.5. Using a Colorblind-Friendly Palette
Problem
You want to use colors that can be distinguished by colorblind viewers.
Solution
Use the palette defined here (cb_palette) with scale_fill_manual() (Figure 12-10):
library(gcookbook) # For the data set
# Base plot
<- ggplot(uspopage, aes(x=Year, y=Thousands, fill=AgeGroup)) + geom_area()
# The palette with grey:
cb_palette <- c("#999999""#E69F00""#56B4E9", "#009E73", "#F0E442"
"#0072B2""#D55E00""#CC79A7")
# Add it to the plot
+ scale_fill_manual(values=cb_palette)
Figure 12-10. A graph with the colorblind-friendly palette
A chart of the colors is shown in Figure 12-11.
12.5. Using a Colorblind-Friendly Palette  |  261
Figure 12-11. Colorblind palette with RGB values
In some cases it may be better to use black instead of grey. To do this, replace the
"#999999" with "#000000" or "black":
c("#000000""#E69F00", "#56B4E9""#009E73", "#F0E442", "#0072B2""#D55E00",
"#CC79A7")
Discussion
About 8 percent of males and 0.5 percent of females have some form of color-vision
deficiency, so there’s a good chance that someone in your audience will be among them.
There are many different forms of color blindness. The palette here is designed to enable
people with any of the most common forms of color-vision deficiency to distinguish the
colors. (Monochromacy, or total colorblindness, is rare. Those who have it can only see
differences in brightness.)
See Also
The source of this palette.
The Color Oracle program  can simulate how things on your screen appear to someone
with color vision deficiency, but keep in mind that the simulation isn’t perfect. In my
informal testing, I viewed an image with simulated red-green deficiency, and I could
distinguish the colors just fine—but others with actual red-green deficiency viewed the
same image and couldn’t tell the colors apart!
262  |  Chapter 12: Using Colors in Plots
12.6. Using a Manually Defined Palette for a
Continuous Variable
Problem
You want to use different colors for a continuous variable.
Solution
In the example here, we’ll specify the colors for a continuous variable using various
gradient scales (Figure 12-12). The colors can be named, or they can be specified with
RGB values:
library(gcookbook) # For the data set
# Base plot
<- ggplot(heightweight, aes(x=ageYear, y=heightIn, colour=weightLb)) +
geom_point(size=3)
p
# With a gradient between two colors
+ scale_colour_gradient(low="black", high="white")
# A gradient with a white midpoint
library(scales)
+ scale_colour_gradient2(low=muted("red"), mid="white", high=muted("blue"),
midpoint=110)
# A gradient of n colors
+ scale_colour_gradientn(colours = c("darkred", "orange""yellow", "white"))
For fill scales, use scale_fill_xxx() versions instead, where xxx is one of gradient,
gradient2, or gradientn.
Discussion
Mapping continuous values to a color scale requires a continuously changing palette of
colors. Table 12-2 lists the continuous color and fill scales.
Table 12-2. Continuous fill and color scales
Fill scale
Color scale
Description
scale_fill_gradient()
scale_colour_gradient()
Two-color gradient
scale_fill_gradient2() scale_colour_gradient2() Gradient with a middle color and two colors that
diverge from it
scale_fill_gradientn() scale_colour_gradientn() Gradient with n colors, equally spaced
12.6. Using a Manually Defined Palette for a Continuous Variable  |  263
Figure 12-12. Clockwise from top left: default colors, two-color gradient with scale_col‐
our_gradient(), three-color gradient with midpoint with scale_colour_gradient2(), four-
color gradient with scale_colour_gradientn()
Notice that we used the muted() function in the examples. This is a function from the
scales package that returns an RGB value that is a less-saturated version of the color
chosen.
See Also
If you want use a discrete (categorical) scale instead of a continuous one, you can recode
your data into categorical values. See Recipe 15.14.
12.7. Coloring a Shaded Region Based on Value
Problem
You want to set the color of a shaded region based on the y value.
264  |  Chapter 12: Using Colors in Plots
Documents you may be interested
Documents you may be interested