c# display pdf in winform : Add page numbers pdf Library software component .net winforms windows mvc R%20Graphics%20Cookbook17-part697

See Also
For adding regression lines, see Recipes Recipe 5.6 and 5.7.
Lines are often used to indicate summarized information about data. See Recipe 15.17
for more on how to summarize data by groups.
7.4. Adding Line Segments and Arrows
Problem
You want to add line segments or arrows to a plot.
Solution
Use annotate("segment"). In this example, we’ll use the climate data set and use a
subset of data from the Berkeley source (Figure 7-10):
library(gcookbook) # For the data set
<- ggplot(subset(climate, Source=="Berkeley"), aes(x=Year, y=Anomaly10y)) +
geom_line()
+ annotate("segment", x=1950, xend=1980, y=-.25, yend=-.25)
Figure 7-10. Line segment annotation
Discussion
It’s possible to add arrowheads or flat ends to the line segments, using arrow() from the
grid package. In this example, we’ll do both (Figure 7-11):
7.4. Adding Line Segments and Arrows | 155
Add page numbers pdf - 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 and delete pages from pdf; add page numbers to pdf files
Add page numbers pdf - 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 numbers to pdf in reader; add page pdf
library(grid)
+ annotate("segment", x=1850, xend=1820, y=-.8, yend=-.95, colour="blue",
size=2, arrow=arrow()) +
annotate("segment", x=1950, xend=1980, y=-.25, yend=-.25,
arrow=arrow(ends="both", angle=90, length=unit(.2,"cm")))
Figure 7-11. Line segments with arrow heads
The default angle is 30, and the default length of the arrowhead lines is 0.2 inches.
If one or both axes are discrete, the x and y positions are such that the categorical items
have coordinate values 1, 2, 3, and so on.
See Also
For more information about the parameters for drawing arrows, load the grid package
and see ?arrow.
7.5. Adding a Shaded Rectangle
Problem
You want to add a shaded region.
Solution
Use annotate("rect") (Figure 7-12):
library(gcookbook) # For the data set
<- ggplot(subset(climate, Source=="Berkeley"), aes(x=Year, y=Anomaly10y)) +
156 | Chapter 7: Annotations
C# Create PDF Library SDK to convert PDF from other file formats
them the ability to count the page numbers of generated PDF document in C#.NET using this PDF document creating toolkit, if you need to add some text
add and remove pages from pdf file online; add page numbers pdf files
C# Word - Word Create or Build in C#.NET
also offer them the ability to count the page numbers of generated using this Word document adding control, you can add some additional Create Word From PDF.
adding page numbers to a pdf in reader; add page to a pdf
geom_line()
+ annotate("rect", xmin=1950, xmax=1980, ymin=-1, ymax=1, alpha=.1,
fill="blue")
Figure 7-12. A shaded rectangle
Discussion
Each layer is drawn in the order that it’s added to the ggplot object, so in the preceding
example, the rectangle is drawn on top of the line. It’s not a problem in that case, but if
you’d like to have the line above the rectangle, add the rectangle first, and then the line.
Any geom can be used with annotate(), as long as you pass in the proper parameters.
In this case, geom_rect() requires min and max values for x and y.
7.6. Highlighting an Item
Problem
You want to change the color of an item to make it stand out.
Solution
To highlight one or more items, create a new column in the data and map it to the color.
In this example, we’ll create a new column, hl, and set its value based on the value of
group:
pg <- PlantGrowth                 # Make a copy of the PlantGrowth data
pg$hl <- "no"                     # Set all to "no"
pg$hl[pg$group=="trt2"<- "yes"  # If group is "trt2", set to "yes"
Then we’ll plot it with manually specified colors and with no legend (Figure 7-13):
7.6. Highlighting an Item | 157
C# PowerPoint - PowerPoint Creating in C#.NET
file but also offer them the ability to count the page numbers of generated NET using this PowerPoint document creating toolkit, if you need to add some text
add a page to a pdf online; adding page numbers in pdf
C# Word - Word Creating in C#.NET
document file but also offer them the ability to count the page numbers of generated using this Word document creating toolkit, if you need to add some text
adding page to pdf; add pages to pdf in preview
ggplot(pg, aes(x=group, y=weight, fill=hl)) + geom_boxplot() +
scale_fill_manual(values=c("grey85""#FFDDCC"), guide=FALSE)
Figure 7-13. Highlighting one item
Discussion
If you have a small number of items, as in this example, instead of creating a new column
you could use the original one and specify the colors for every level of that variable. For
example, the following code will use the group column from PlantGrowth and manually
set the colors for each of the three levels. The result will appear the same as with the
preceding code:
ggplot(PlantGrowth, aes(x=group, y=weight, fill=group)) + geom_boxplot() +
scale_fill_manual(values=c("grey85""grey85""#FFDDCC"), guide=FALSE)
See Also
See Chapter 12 for more information about specifying colors.
For more information about removing the legend, see Recipe 10.1.
158 | Chapter 7: Annotations
VB.NET TIFF: VB.NET Sample Codes to Sort TIFF File with .NET
manipulating multi-page TIFF (Tagged Image File), PDF, Microsoft Office If you want to add barcode into a TIFF a multi-page TIFF file with page numbers using VB
add a page to pdf file; add pdf pages together
C# Excel: Create and Draw Linear and 2D Barcodes on Excel Page
can also load document like PDF, TIFF, Word get the first page BasePage page = doc.GetPage REImage barcodeImage = linearBarcode.ToImage(); // add barcode image
adding page numbers pdf file; adding page numbers pdf
7.7. Adding Error Bars
Problem
You want to add error bars to a graph.
Solution
Use geom_errorbar and map variables to the values for ymin and ymax. Adding the error
bars is done the same way for bar graphs and line graphs, as shown in Figure 7-14 (notice
that default y range is different for bars and lines, though):
library(gcookbook) # For the data set
# Take a subset of the cabbage_exp data for this example
ce <- subset(cabbage_exp, Cultivar == "c39")
# With a bar graph
ggplot(ce, aes(x=Date, y=Weight)) +
geom_bar(fill="white", colour="black") +
geom_errorbar(aes(ymin=Weight-se, ymax=Weight+se), width=.2)
# With a line graph
ggplot(ce, aes(x=Date, y=Weight)) +
geom_line(aes(group=1)) +
geom_point(size=4+
geom_errorbar(aes(ymin=Weight-se, ymax=Weight+se), width=.2)
Figure 7-14. Left: error bars on a bar graph; right: on a line graph
Discussion
In this example, the data already has values for the standard error of the mean (se),
which we’ll use for the error bars (it also has values for the standard deviation, sd, but
we’re not using that here):
7.7. Adding Error Bars | 159
C# Excel - Excel Creating in C#.NET
document file but also offer them the ability to count the page numbers of generated using this Excel document creating toolkit, if you need to add some text
add page numbers to pdf reader; add page number to pdf hyperlink
VB.NET Image: Guide to Convert Images to Stream with DocImage SDK
Follow this guiding page to learn how to easily convert a single image or numbers of it an image processing component which can enable developers to add a wide
add pages to an existing pdf; add page numbers to pdf
ce
Cultivar Date Weight        sd  n         se
c39  d16   3.18 0.9566144 10 0.30250803
c39  d20   2.80 0.2788867 10 0.08819171
c39  d21   2.74 0.9834181 10 0.31098410
To get the values for ymax and ymin, we took the y variable, Weight, and added/
subtracted se.
We also specified the width of the ends of the error bars, with width=.2. It’s best to play
around with this to find a value that looks good. If you don’t set the width, the error bars
will be very wide, spanning all the space between items on the x-axis.
For a bar graph with groups of bars, the error bars must also be dodged; otherwise, they’ll
have the exact same x coordinate and won’t line up with the bars. (See Recipe 3.2 for
more information about grouped bars and dodging.)
We’ll work with the full cabbage_exp data set this time:
cabbage_exp
Cultivar Date Weight        sd  n         se
c39  d16   3.18 0.9566144 10 0.30250803
c39  d20   2.80 0.2788867 10 0.08819171
c39  d21   2.74 0.9834181 10 0.31098410
c52  d16   2.26 0.4452215 10 0.14079141
c52  d20   3.11 0.7908505 10 0.25008887
c52  d21   1.47 0.2110819 10 0.06674995
The default dodge width for geom_bar() is 0.9, and you’ll have to tell the error bars to
be dodged the same width. If you don’t specify the dodge width, it will default to dodging
by the width of the error bars, which is usually less than the width of the bars
(Figure 7-15):
# Bad: dodge width not specified
ggplot(cabbage_exp, aes(x=Date, y=Weight, fill=Cultivar)) +
geom_bar(position="dodge"+
geom_errorbar(aes(ymin=Weight-se, ymax=Weight+se),
position="dodge", width=.2)
# Good: dodge width set to same as bar width (0.9)
ggplot(cabbage_exp, aes(x=Date, y=Weight, fill=Cultivar)) +
geom_bar(position="dodge"+
geom_errorbar(aes(ymin=Weight-se, ymax=Weight+se),
position=position_dodge(0.9), width=.2)
160 | Chapter 7: Annotations
C#: Use XImage.OCR to Recognize MICR E-13B, OCR-A, OCR-B Fonts
may need to scan and get check characters like numbers and codes. page.RecSettings. LanguagesEnabled.Add(Language.Other); page.RecSettings.OtherLanguage
add or remove pages from pdf; add page number to pdf
C# Word: How to Use C# Code to Print Word Document for .NET
are also available within C# Word Printer Add-on , like pages at one paper, setting the page copy numbers to be C# Class Code to Print Certain Page(s) of Word.
add pdf pages to word document; add page to pdf
Figure 7-15. Left: error bars on a grouped bar graph without dodging width specified;
right: with dodging width specified
Notice that we used position="dodge", which is shorthand for posi
tion=position_dodge(), in the first version. But to pass a specific val‐
ue, we have to spell it out, as in position_dodge(0.9).
For line graphs, if the error bars are a different color than the lines and points, you should
draw the error bars first, so that they are underneath the points and lines. Otherwise
the error bars will be drawn on top of the points and lines, which won’t look right.
Additionally, you should dodge all the geometric elements so that they will align with
the error bars, as shown in Figure 7-16:
pd <- position_dodge(.3)  # Save the dodge spec because we use it repeatedly
ggplot(cabbage_exp, aes(x=Date, y=Weight, colour=Cultivar, group=Cultivar)) +
geom_errorbar(aes(ymin=Weight-se, ymax=Weight+se),
width=.2, size=0.25, colour="black", position=pd) +
geom_line(position=pd) +
geom_point(position=pd, size=2.5)
# Thinner error bar lines with size=0.25, and larger points with size=2.5
Notice that we set colour="black" to make the error bars black; otherwise, they would
inherit colour. We also made sure the Cultivar was used as a grouping variable by
mapping it to group.
7.7. Adding Error Bars | 161
Figure 7-16. Error bars on a line graph, dodged so they don’t overlap
When a discrete variable is mapped to an aesthetic like colour or fill (as in the case
of the bars), that variable is used for grouping the data. But by setting the colour of the
error bars, we made it so that the variable for colour was not used for grouping, and we
needed some other way to inform ggplot() that the two data entries at each x were in
different groups so that they would be dodged.
See Also
See Recipe 3.2 for more about creating grouped bar graphs, and Recipe 4.3 for more
about creating line graphs with multiple lines.
See Recipe 15.18 for calculating summaries with means, standard deviations, standard
errors, and confidence intervals.
See Recipe 4.9 for adding a confidence region when the data has a higher density along
the x-axis.
7.8. Adding Annotations to Individual Facets
Problem
You want to add annotations to each facet in a plot.
Solution
Create a new data frame with the faceting variable(s), and a value to use in each facet.
Then use geom_text() with the new data frame (Figure 7-17):
162 | Chapter 7: Annotations
# The base plot
<- ggplot(mpg, aes(x=displ, y=hwy)) + geom_point() + facet_grid(. ~ drv)
# A data frame with labels for each facet
f_labels <- data.frame(drv = c("4""f""r"), label = c("4wd""Front""Rear"))
+ geom_text(x=6, y=40, aes(label=label), data=f_labels)
# If you use annotate(), the label will appear in all facets
+ annotate("text", x=6, y=42, label="label text")
Figure 7-17. Top: different annotations in each facet; bottom: the same annotation in
each facet
Discussion
This method can be used to display information about the data in each facet, as shown
in Figure 7-18. For example, in each facet we can show linear regression lines, the formula
for each line, and the r
2
value (). To do this, we’ll write a function that takes a data frame
and returns another data frame containing a string for a regression equation, and a string
for the r
2
value. Then we’ll use ddply() to apply that function to each group of the data:
7.8. Adding Annotations to Individual Facets | 163
# This function returns a data frame with strings representing the regression
# equation, and the r^2 value
# These strings will be treated as R math expressions
lm_labels <- function(dat) {
mod <- lm(hwy ~ displ, data=dat)
formula <- sprintf("italic(y) == %.2f %+.2f * italic(x)",
round(coef(mod)[1], 2), round(coef(mod)[2], 2))
<- cor(dat$displ, dat$hwy)
r2 <- sprintf("italic(R^2) == %.2f", r^2)
data.frame(formula=formula, r2=r2, stringsAsFactors=FALSE)
}
library(plyr) # For the ddply() function
labels <- ddply(mpg, "drv", lm_labels)
labels
drv                              formula                  r2
4 italic(y) == 30.68 -2.88 * italic(x) italic(R^2) == 0.65
f italic(y) == 37.38 -3.60 * italic(x) italic(R^2) == 0.36
r italic(y) == 25.78 -0.92 * italic(x) italic(R^2) == 0.04
# Plot with formula and R^2 values
+ geom_smooth(method=lm, se=FALSE) +
geom_text(x=3, y=40, aes(label=formula), data=labels, parse=TRUE, hjust=0+
geom_text(x=3, y=35, aes(label=r2), data=labels, parse=TRUE, hjust=0)
Figure 7-18. Annotations in each facet with information about the data
We needed to write our own function here because generating the linear model and
extracting the coefficients requires operating on each subset data frame directly. If you
just want to display the r
2
values, it’s possible to do something simpler, by using ddply()
with the summarise() function and then passing additional arguments for summarise():
164 | Chapter 7: Annotations
Documents you may be interested
Documents you may be interested