c# display pdf in winform : Add pdf pages to word document Library SDK class asp.net wpf azure ajax R%20Graphics%20Cookbook10-part690

Figure 5-12. Overplotting, with about 54,000 points
For most graphs, vector formats (such as PDF, EPS, and SVG) result
in smaller output files than bitmap formats (such as TIFF and PNG).
But in cases where there are tens of thousands of points, vector output
files can be very large and slow to render—the scatter plot here with
99% transparent points is 1.5 MB! In these cases, high-resolution bit‐
maps will be smaller and faster to display on computer screens. See
Chapter 14 for more information.
Another solution is to bin the points into rectangles and map the density of the points
to the fill color of the rectangles, as shown in Figure 5-14. With the binned visualization,
the vertical bands are barely visible. The density of points in the lower-left corner is
much greater, which tells us that the vast majority of diamonds are small and
5.5. Dealing with Overplotting | 85
Add pdf pages to word document - insert pages into PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Guide C# Users to Insert (Empty) PDF Page or Pages from a Supported File Format
add page pdf reader; add page number to pdf in preview
Add pdf pages to word document - VB.NET PDF Page Insert Library: insert pages into PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Easy to Use VB.NET APIs to Add a New Blank Page to PDF Document
add page to pdf; add blank page to pdf preview
Figure 5-13. Left: semitransparent points with alpha=.1; right: with alpha=.01
By default, stat_bin_2d() divides the space into 30 groups in the x and y directions,
for a total of 900 bins. In the second version, we increase the number of bins with
The default colors are somewhat difficult to distinguish because they don’t vary much
in luminosity. In the second version we set the colors by using scale_fill_gradi
ent() and specifying the low and high colors. By default, the legend doesn’t show an
entry for the lowest values. This is because the range of the color scale starts not from
zero, but from the smallest nonzero quantity in a bin—probably 1, in this case. To make
the legend show a zero (as in Figure 5-14, right), we can manually set the range from 0
to the maximum, 6000, using limits (Figure 5-14, left):
sp + stat_bin2d()
sp + stat_bin2d(bins=50) +
scale_fill_gradient(low="lightblue", high="red", limits=c(06000))
Another alternative is to bin the data into hexagons instead of rectangles, with stat_bin
hex() (Figure 5-15). It works just like stat_bin2d(). To use it, you must first install the
hexbin package, with install.packages("hexbin"):
sp + stat_binhex() +
scale_fill_gradient(low="lightblue", high="red",
86 | Chapter 5: Scatter Plots
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
to open & read documents even though they are using different types of word processors. C#.NET Project DLLs: Copy and Paste PDF Pages. Add necessary references:
adding page numbers pdf file; adding a page to a pdf in reader
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
pageIndexes.Add(3) ' The 4th page. ' Create the new document with 3 pages. Dim outputFilePath As String = Program.RootPath + "\\" Output.pdf" newDoc.Save
add page number to pdf online; add page numbers to a pdf in preview
Figure 5-14. Left: binning data with stat_bin2d(); right: with more bins, manually speci‐
fied colors, and legend breaks
sp + stat_binhex() +
scale_fill_gradient(low="lightblue", high="red",
breaks=c(0250500, 1000200040006000),
For both of these methods, if you manually specify the range, and there is a bin that falls
outside that range because it has too many or too few points, that bin will show up as
grey rather than the color at the high or low end of the range, as seen in the graph on
the right in Figure 5-15.
Figure 5-15. Left: binning data with stat_binhex(); right: cells outside of the range shows
in grey
5.5. Dealing with Overplotting | 87
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
Add necessary references: RasterEdge.Imaging.Basic.dll. This is a VB .NET example for how to delete a range of pages from a PDF document.
add a blank page to a pdf; adding pages to a pdf
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
options, including setting a single page, a series of pages, and random pages to be C#.NET Project DLLs for Deleting PDF Document Page. Add necessary references
adding pages to a pdf document; add page number to pdf hyperlink
Overplotting can also occur when the data is discrete on one or both axes, as shown in
Figure 5-16. In these cases, you can randomly jitter the points with position_jit
ter(). By default the amount of jitter is 40% of the resolution of the data in each direc‐
tion, but these amounts can be controlled with width and height:
sp1 <- ggplot(ChickWeight, aes(x=Time, y=weight))
sp1 + geom_point()
sp1 + geom_point(position="jitter")
# Could also use geom_jitter(), which is equivalent
sp1 + geom_point(position=position_jitter(width=.5, height=0))
Figure 5-16. Left: data with a discrete x variable; middle: jittered; right: jittered horizon‐
tally only
When the data has one discrete axis and one continuous axis, it might make sense to
use box plots, as shown in Figure 5-17. This will convey a different story than a standard
scatter plot because it will obscure the number of data points at each location on the
discrete axis. This may be problematic in some cases, but desirable in others.
With the ChickWeights data, the x-axis is conceptually discrete, but since it is stored
numerically, ggplot() doesn’t know how to group the data for each box. If you don’t
tell it how to group the data, you get a result like the graph on the right in Figure 5-17.
To tell it how to group the data, use aes(group=...). In this case, we’ll group by each
distinct value of Time:
sp1 + geom_boxplot(aes(group=Time))
See Also
Instead of binning the data, it may be useful to display a 2D density estimate. To do this,
see Recipe 6.12.
88 | Chapter 5: Scatter Plots
VB.NET PDF Convert to Word SDK: Convert PDF to Word library in vb.
All PDF pages can be converted to separate Word files within a short time in In order to convert PDF document to Word file using VB.NET Add necessary references
add and delete pages in pdf; adding page to pdf in preview
C# PDF insert image Library: insert images into PDF in C#.net, ASP
Create high resolution PDF file without image quality losing in ASP.NET application. Add multiple images to multipage PDF document in .NET WinForms.
add page numbers to pdf files; adding pages to a pdf document in preview
Figure 5-17. Left: grouping into box plots; right: what happens if you don’t specify groups
5.6. Adding Fitted Regression Model Lines
You want to add lines from a fitted regression model to a scatter plot.
To add a linear regression line to a scatter plot, add stat_smooth() and tell it to use
method=lm. This instructs it to fit the data with the lm() (linear model) function. First
we’ll save the base plot object in sp, then we’ll add different components to it:
library(gcookbook) # For the data set
# The base plot
sp <- ggplot(heightweight, aes(x=ageYear, y=heightIn))
sp + geom_point() + stat_smooth(method=lm)
By default, stat_smooth() also adds a 95% confidence region for the regression fit. The
confidence interval can be changed by setting level, or it can be disabled with se=FALSE
(Figure 5-18):
# 99% confidence region
sp + geom_point() + stat_smooth(method=lm, level=0.99)
# No confidence region
sp + geom_point() + stat_smooth(method=lm, se=FALSE)
5.6. Adding Fitted Regression Model Lines | 89
VB.NET PDF insert image library: insert images into PDF in vb.net
VB.NET PDF - Add Image to PDF Page in VB.NET. Guide VB.NET Programmers How to Add Images in PDF Document Using XDoc.PDF SDK for VB.NET.
add page number to pdf reader; add page to pdf online
C# PDF Password Library: add, remove, edit PDF file password in C#
in C#.NET framework. Support to add password to PDF document online or in C#.NET WinForms for PDF file protection. Able to create a
add page numbers to pdf in preview; add and remove pages from a pdf
The default color of the fit line is blue. This can be change by setting colour. As with
any other line, the attributes linetype and size can also be set. To emphasize the line,
you can make the dots less prominent by setting colour (Figure 5-18, bottom right):
sp + geom_point(colour="grey60"+
stat_smooth(method=lm, se=FALSE, colour="black")
Figure 5-18. Top left: an lm fit with the default 95% confidence region; bottom left: a
99% confidence region; top right: no confidence region; bottom right: in black with grey
90 | Chapter 5: Scatter Plots
The linear regression line is not the only way of fitting a model to the data—in fact, it’s
not even the default. If you add stat_smooth() without specifying the method, it will
use a loess (locally weighted polynomial) curve, as shown in Figure 5-19. Both of these
will have the same result:
sp + geom_point(colour="grey60"+ stat_smooth()
sp + geom_point(colour="grey60"+ stat_smooth(method=loess)
Figure 5-19. A LOESS fit
Additional parameters can be passed along to the loess() function by just passing them
to stat_smooth().
Another common type of model fit is a logistic regression. Logistic regression isn’t ap‐
propriate for the heightweight data set, but it’s perfect for the biopsy data set in the
MASS library. In this data set, there are nine different measured attributes of breast cancer
biopsies, as well as the class of the tumor, which is either benign or malignant. To prepare
the data for logistic regression, we must convert the factor class, with the levels be
nign and malignant, to a vector with numeric values of 0 and 1. We’ll make a copy of
the biopsy data frame, then store the numeric coded class in a column called classn:
library(MASS) # For the data set
<- biopsy
b$classn[b$class=="benign"   <- 0
b$classn[b$class=="malignant"<- 1
5.6. Adding Fitted Regression Model Lines | 91
ID V1 V2 V3 V4 V5 V6 V7 V8 V9     class classn
1000025  5  1  1  1  2  1  3  1  1    benign      0
1002945  5  4  4  5  7 10  3  2  1    benign      0
1015425  3  1  1  1  2  2  3  1  1    benign      0
897471  4  8  6  4  3  4 10  6  1 malignant      1
897471  4  8  8  5  4  5 10  4  1 malignant      1
Although there are many attributes we could examine, for this example we’ll just look
at the relationship of V1 (clump thickness) and the class of the tumor. Because there is
a large degree of overplotting, we’ll jitter the points and make them semitransparent
(alpha=0.4), hollow (shape=21), and slightly smaller (size=1.5). Then we’ll add a fitted
logistic regression line (Figure 5-20) by telling stat_smooth() to use the glm() function
with the option family=binomial:
ggplot(b, aes(x=V1, y=classn)) +
geom_point(position=position_jitter(width=0.3, height=0.06), alpha=0.4,
shape=21, size=1.5) +
stat_smooth(method=glm, family=binomial)
Figure 5-20. A logistic model
92 | Chapter 5: Scatter Plots
If your scatter plot has points grouped by a factor, using colour or shape, one fit line
will be drawn for each group. First we’ll make the base plot object sps, then we’ll add
the loess lines to it. We’ll also make the points less prominent by making them semi‐
transparent, using alpha=.4 (Figure 5-21):
sps <- ggplot(heightweight, aes(x=ageYear, y=heightIn, colour=sex)) +
geom_point() +
sps + geom_smooth()
Figure 5-21. Left: LOESS fit lines for each group; right: extrapolated linear fit lines
Notice that the blue line, for males, doesn’t run all the way to the right side of the graph.
There are two reasons for this. The first is that, by default, stat_smooth() limits the
prediction to within the range of the predictor data (on the x-axis). The second is that
even if it extrapolates, the loess() function only offers prediction within the x range of
the data.
If you want the lines to extrapolate from the data, as shown in the right-hand image of
Figure 5-21, you must use a model method that allows extrapolation, like lm(), and pass
stat_smooth() the option fullrange=TRUE:
sps + geom_smooth(method=lm, se=FALSE, fullrange=TRUE)
In this example with the heightweight data set, the default settings for stat_smooth()
(with LOESS and no extrapolation) make more sense than the extrapolated linear pre‐
dictions, because we don’t grow linearly and we don’t grow forever.
5.6. Adding Fitted Regression Model Lines | 93
5.7. Adding Fitted Lines from an Existing Model
You have already created a fitted regression model object for a data set, and you want
to plot the lines for that model.
Usually the easiest way to overlay a fitted model is to simply ask stat_smooth() to do
it for you, as described in Recipe 5.6. Sometimes, however, you may want to create the
model yourself and then add it to your graph. This allows you to be sure that the model
you’re using for other calculations is the same one that you see.
In this example, we’ll build a quadratic model using lm() with ageYear as a predictor
of heightIn. Then we’ll use the predict() function and find the predicted values of
heightIn across the range of values for the predictor, ageYear:
library(gcookbook) # For the data set
model <- lm(heightIn ~ ageYear + I(ageYear^2), heightweight)
lm(formula = heightIn ~ ageYear + I(ageYear^2), data = heightweight)
(Intercept)       ageYear  I(ageYear^2)
-10.3136        8.6673       -0.2478
# Create a data frame with ageYear column, interpolating across range
xmin <- min(heightweight$ageYear)
xmax <- max(heightweight$ageYear)
predicted <- data.frame(ageYear=seq(xmin, xmax, length.out=100))
# Calculate predicted values of heightIn
predicted$heightIn <- predict(model, predicted)
ageYear heightIn
11.58000 56.82624
11.63980 57.00047
17.44020 65.47875
17.50000 65.47933
We can now plot the data points along with the values predicted from the model (as
you’ll see in Figure 5-22):
94 | Chapter 5: Scatter Plots
Documents you may be interested
Documents you may be interested