Figure 3-28. Dot plot, ordered by batting average
It’s also possible to swap the axes so that the names go along the x-axis and the values
go along the y-axis, as shown in Figure 3-29. We’ll also rotate the text labels by 60 degrees:
ggplot(tophit, aes(x=reorder(name, avg), y=avg)) +
geom_point(size=3+                        # Use a larger dot
theme_bw() +
theme(axis.text.x = element_text(angle=60, hjust=1),
panel.grid.major.y = element_blank(),
panel.grid.minor.y = element_blank(),
panel.grid.major.x = element_line(colour="grey60", linetype="dashed"))
It’s also sometimes desirable to group the items by another variable. In this case we’ll
use the factor lg, which has the levels NL and AL, representing the National League and
the American League. This time we want to sort first by lg and then by avg. Unfortu‐
nately, the reorder() function will only order factor levels by one other variable; to
order the factor levels by two variables, we must do it manually:
3.10. Making a Cleveland Dot Plot  |  45
Pdf text search tool - 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; converting pdf to searchable text format
Pdf text search tool - 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
pdf search and replace text; pdf editor with search and replace text
Figure 3-29. Dot plot with names on x-axis and values on y-axis
# Get the names, sorted first by lg, then by avg
nameorder <- tophit$name[order(tophit$lg, tophit$avg)]
# Turn name into a factor, with levels in the order of nameorder
tophit$name <- factor(tophit$name, levels=nameorder)
To make the graph (Figure 3-30), we’ll also add a mapping of lg to the color of the points.
Instead of using grid lines that run all the way across, this time we’ll make the lines go
only up to the points, by using geom_segment(). Note that geom_segment() needs values
for xyxend, and yend:
ggplot(tophit, aes(x=avg, y=name)) +
geom_segment(aes(yend=name), xend=0, colour="grey50") +
geom_point(size=3, aes(colour=lg)) +
scale_colour_brewer(palette="Set1", limits=c("NL","AL")) +
theme_bw() +
theme(panel.grid.major.y = element_blank(),   # No horizontal grid lines
legend.position=c(10.55),             # Put legend inside plot area
legend.justification=c(10.5))
Another way to separate the two groups is to use facets, as shown in Figure 3-31. The
order  in  which  the  facets  are  displayed  is  different  from  the  sorting  order  in
Figure 3-30; to change the display order, you must change the order of factor levels in
the lg variable:
ggplot(tophit, aes(x=avg, y=name)) +
geom_segment(aes(yend=name), xend=0, colour="grey50") +
geom_point(size=3, aes(colour=lg)) +
46  |  Chapter 3: Bar Graphs
VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
Easy to search PDF text in whole PDF document. VB.NET HTML5 PDF Viewer: View PDF Online. PDF file is loaded as sample file for viewing on the viewer. Select tool.
search pdf documents for text; how to make a pdf file text searchable
C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
Easy to search PDF text in whole PDF document. C# HTML5 PDF Viewer: View PDF Online. PDF file is loaded as sample file for viewing on the viewer. 1. Select tool.
how to make pdf text searchable; convert a scanned pdf to searchable text
scale_colour_brewer(palette="Set1", limits=c("NL","AL"), guide=FALSE) +
theme_bw() +
theme(panel.grid.major.y = element_blank()) +
facet_grid(lg ~ ., scales="free_y", space="free_y")
Figure 3-30. Grouped by league, with lines that stop at the point
3.10. Making a Cleveland Dot Plot  |  47
C# PDF Text Highlight Library: add, delete, update PDF text
a multifunctional PDF document annotation tool, which can example illustrates how to perform PDF text highlight function NET project, according to search option
select text in pdf; find and replace text in pdf
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
Raster Edge XDoc.PDF SDK is such an extraction tool can be installed easily in VB.NET application, the extraction process will be greatly simplified.
select text pdf file; searching pdf files for text
Figure 3-31. Faceted by league
See Also
For more on changing the order of factor levels, see Recipe 15.8. Also see Recipe 15.9
for details on changing the order of factor levels based on some other values.
For more on moving the legend, see Recipe 10.2. To hide grid lines, see Recipe 9.6.
48  |  Chapter 3: Bar Graphs
C# WPF PDF Viewer SDK to view, annotate, convert and print PDF in
Rotate a PDF Page. PDF Read. Text: Extract Text from PDF. Text: Search Text in PDF. Users can add various annotations to PDF, such as text, text box, note
can't select text in pdf file; search text in pdf using java
VB.NET PDF - WPF PDF Viewer for VB.NET Program
copy, paste, C#.NET rotate PDF pages, C#.NET search text in PDF, C# RasterEdge WPF PDF Viewer for VB.NET is a PDF utility annotation generation tool.
pdf searchable text; pdf text search
CHAPTER 4
Line Graphs
Line graphs are typically used for visualizing how one continuous variable, on the y-
axis, changes in relation to another continuous variable, on the x-axis. Often the x
variable represents time, but it may also represent some other continuous quantity, like
the amount of a drug administered to experimental subjects.
As with bar graphs, there are exceptions. Line graphs can also be used with a discrete
variable on the x-axis. This is appropriate when the variable is ordered (e.g., “small”,
“medium”, “large”), but not when the variable is unordered (e.g., “cow”, “goose”, “pig”).
Most of the examples in this chapter use a continuous x variable, but we’ll see one
example where the variable is converted to a factor and thus treated as a discrete variable.
4.1. Making a Basic Line Graph
Problem
You want to make a basic line graph.
Solution
Use ggplot() with geom_line(), and specify what variables you mapped to x and y
(Figure 4-1):
ggplot(BOD, aes(x=Time, y=demand)) + geom_line()
49
C# PDF Convert to Tiff SDK: Convert PDF to tiff images in C#.net
RasterEdge C#.NET PDF to TIFF converting library control (XDoc.PDF) is a multifunctional PDF document converting tool, which can perform high-fidelity PDF
pdf make text searchable; select text in pdf file
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
Using our PDF document manipulation APIs, users can easily customize and set the PDF page adding tool to freely choose the specific location of the new page.
how to select text on pdf; search pdf files for text
Figure 4-1. Basic line graph
Discussion
In  this  sample  data set, the x variable, Time,  is  in  one  column and  the  y  variable,
demand, is in another:
BOD
Time demand
   8.3
  10.3
  19.0
  16.0
  15.6
  19.8
Line graphs can be made with discrete (categorical) or continuous (numeric) variables
on the x-axis. In the example here, the variable demand is numeric, but it could be treated
as a categorical variable by converting it to a factor with factor() (Figure 4-2). When
the x variable is a factor, you must also use aes(group=1) to ensure that ggplot() knows
that the data points belong together and should be connected with a line (see Recipe 4.3
for an explanation of why group is needed with factors):
BOD1 <- BOD # Make a copy of the data
BOD1$Time <- factor(BOD1$Time)
ggplot(BOD1, aes(x=Time, y=demand, group=1)) + geom_line()
In the BOD data set there is no entry for Time=6, so there is no level 6 when Time is
converted to a factor. Factors hold categorical values, and in that context, 6 is just another
value. It happens to not be in the data set, so there’s no space for it on the x-axis.
50  |  Chapter 4: Line Graphs
VB.NET PDF Text Highlight Library: add, delete, update PDF text
C#.NET rotate PDF pages, C#.NET search text in PDF is a multifunctional PDF document annotation tool, which can sample code shows how to highlight PDF text in VB
how to make a pdf document text searchable; how to select all text in pdf
XDoc.HTML5 Viewer for .NET, All Mature Features Introductions
search text-based documents, like PDF, Microsoft Office Word, Excel, and PowerPoint (2003 and 2007 versions). The well built-in text search tool is compatible
cannot select text in pdf; how to select text in pdf image
Figure 4-2. Basic line graph with a factor on the x-axis (notice that no space is allocated
on the x-axis for 6)
With ggplot2, the default y range of a line graph is just enough to include the y values
in the data. For some kinds of data, it’s better to have the y range start from zero. You
can use ylim() to set the range, or you can use expand_limits() to expand the range
to include a value. This will set the range from zero to the maximum value of the demand
column in BOD (Figure 4-3):
# These have the same result
ggplot(BOD, aes(x=Time, y=demand)) + geom_line() + ylim(0, max(BOD$demand))
ggplot(BOD, aes(x=Time, y=demand)) + geom_line() + expand_limits(y=0)
Figure 4-3. Line graph with manually set y range
See Also
See Recipe 8.2 for more on controlling the range of the axes.
4.1. Making a Basic Line Graph  |  51
4.2. Adding Points to a Line Graph
Problem
You want to add points to a line graph.
Solution
Add geom_point() (Figure 4-4):
ggplot(BOD, aes(x=Time, y=demand)) + geom_line() + geom_point()
Figure 4-4. Line graph with points
Discussion
Sometimes it is useful to indicate each data point on a line graph. This is helpful when
the density of observations is low, or when the observations do not happen at regular
intervals. For example, in the BOD data set there is no entry for Time=6, but this is not
apparent from just a bare line graph (compare Figure 4-3 with Figure 4-4).
In the worldpop data set, the intervals between each data point are not consistent. In
the far past, the estimates were not as frequent as they are in the more recent past.
Displaying points on the graph illustrates when each estimate was made (Figure 4-5):
library(gcookbook) # For the data set
ggplot(worldpop, aes(x=Year, y=Population)) + geom_line() + geom_point()
# Same with a log y-axis
ggplot(worldpop, aes(x=Year, y=Population)) + geom_line() + geom_point() +
scale_y_log10()
52  |  Chapter 4: Line Graphs
Figure 4-5. Top: points indicate where each data point is; bottom: the same data with a
log y-axis
With the log y-axis, you can see that the rate of proportional change has increased in
the last thousand years. The estimates for the years before 0 have a roughly constant rate
of change of 10 times per 5,000 years. In the most recent 1,000 years, the population has
increased at a much faster rate. We can also see that the population estimates are much
more frequent in recent times—and probably more accurate!
See Also
To change the appearance of the points, see Recipe 4.5.
4.3. Making a Line Graph with Multiple Lines
Problem
You want to make a line graph with more than one line.
4.3. Making a Line Graph with Multiple Lines  |  53
Solution
In addition to the variables mapped to the x- and y-axes, map another (discrete) variable
to colour or linetype, as shown in Figure 4-6:
# Load plyr so we can use ddply() to create the example data set
library(plyr)
# Summarize the ToothGrowth data
tg <- ddply(ToothGrowth, c("supp", "dose"), summarise, length=mean(len))
# Map supp to colour
ggplot(tg, aes(x=dose, y=length, colour=supp)) + geom_line()
# Map supp to linetype
ggplot(tg, aes(x=dose, y=length, linetype=supp)) + geom_line()
Figure 4-6. Left: a variable mapped to colour; right: a variable mapped to linetype
Discussion
The tg data has three columns, including the factor supp, which we mapped to col
our and linetype:
tg
supp dose length
OJ  0.5  13.23
OJ  1.0  22.70
OJ  2.0  26.06
VC  0.5   7.98
VC  1.0  16.77
VC  2.0  26.14
str(tg)
54  |  Chapter 4: Line Graphs
Documents you may be interested
Documents you may be interested