DescTools (version 0.99.11)

PpPlot: Add Slides, Insert Texts and Plots to PowerPoint

Description

A couple of functions to get R-stuff into MS-Powerpoint. PpAddSlide inserts a new slide into the active presentation. PpPlot inserts the active plot into PowerPoint. The image is transferred by saving the picture to a file in R and inserting the file in PowerPoint. The format of the plot can be selected, as well as crop options and the size factor for inserting. PpText inserts a new textbox with given text and box properties.

Usage

PpAddSlide(pos = NULL, pp = getOption("lastPP"))

PpPlot(type = "png", crop = c(0, 0, 0, 0), picscale = 100, x = 1, y = 1, 
       height = NA, width = NA, res=200, dfact=1.6, pp = getOption("lastPP"))

PpText(txt, x = 1, y = 1, height = 50, width = 100, fontname = "Calibri", fontsize = 18, 
       bold = FALSE, italic = FALSE, col = "black", bg = "white", 
       hasFrame = TRUE, pp = getOption("lastPP"))

Arguments

pos
position of the new inserted slide.
type
the format for the picture file, default is "png".
crop
crop options for the picture, defined by a 4-elements-vector. The first element is the bottom side, the second the left and so on.
picscale
scale factor of the picture in percent, default ist 100.
x, y
left/upper xy-coordinate for the plot or for the textbox.
height
height in cm, this overrides the picscale if both are given.
width
width in cm, this overrides the picscale if both are given.
res
resolution for the png file, defaults to 200.
dfact
the size factor for the graphic.
txt
text to be placed in the textbox
fontname
used font for textbox
fontsize
used fontsize for textbox
bold
logic. Text is set bold if this is set to TRUE (default is FALSE).
italic
logic. Text is set italic if this is to TRUE (default is FALSE).
col
font color, defaults to "black".
bg
background color for textboxdefaults to "white".
hasFrame
logical. Defines if a textbox is to be framed. Default is TRUE.
pp
the pointer to a PowerPoint instance, can be a new one, created by GetNewPP() or the last created by getOption("lastPP") (default).

Value

  • Returns a pointer to the inserted picture.

Details

See PowerPoint-objectmodel for further informations.

See Also

GetNewPP, WrdPlot

Examples

Run this code
# Windows-specific example

# let's have some graphic 
plot(1,type="n", axes=FALSE, xlab="", ylab="", xlim=c(0,1), ylim=c(0,1))
rect(0,0,1,1,col="black")
segments(x0=0.5, y0=seq(0.632,0.67, length.out=100), 
  y1=seq(0.5,0.6, length.out=100), x1=1, col=rev(rainbow(100)))
polygon(x=c(0.35,0.65,0.5), y=c(0.5,0.5,0.75), border="white",
  col="black", lwd=2)
segments(x0=0,y0=0.52, x1=0.43, y1=0.64, col="white", lwd=2)
x1 <- seq(0.549,0.578, length.out=50)
segments(x0=0.43, y0=0.64, x1=x1, y1=-tan(pi/3)* x1 + tan(pi/3) * 0.93, 
  col=rgb(1,1,1,0.35))


# get a handle to a new PowerPoint instance
pp <- GetNewPP()
# insert plot with a specified height
PpPlot(pp=pp,  x=150, y=150, height=10, width=10)

PpText("Remember?\n", fontname="Arial", x=200, y=70, height=30, fontsize=14, 
       bold=TRUE, pp=pp, bg="lemonchiffon", hasFrame=TRUE)

PpAddSlide(pp=pp)
# crop the picture
pic <- PpPlot(pp=pp, x=1, y=200, height=10, width=10, crop=c(9,9,0,0))
pic


# some more automatic procedure
pp <- GetNewPP()
PpText("Hello to my presentation", x=100, y=100, fontsize=32, bold=TRUE, 
       width=300, hasFrame=FALSE, col="blue", pp=pp)

for(i in 1:4){
  barplot(1:4, col=i)
  PpAddSlide(pp=pp)
  PpPlot(height=15, width=21, x=50, y=50, pp=pp)
  PpText(gettextf("This is my barplot nr %s", i), x=100, y=10, width=300, pp=pp)
}

Run the code above in your browser using DataCamp Workspace