### R code from vignette source 'potter-murrell.Rnw'

###################################################
### code chunk number 1: potter-murrell.Rnw:34-35
###################################################
library(grImport)


###################################################
### code chunk number 2: potter-murrell.Rnw:37-57
###################################################
testimage <- function(text, fill=FALSE, gradient=FALSE, raster=FALSE) {
    grid.rect(gp=gpar(col=NA, fill=hcl(20, 100, 60)))
    grid.text(text, gp=gpar(fontface="italic", col="white"))
    if (fill) {
        grid.circle(r=.3, name="c", 
                    gp=gpar(col="white", fill=hcl(200, 100, 60, .5)))
    } else {
        grid.circle(r=.3, name="c", gp=gpar(col="white"))
    }
    if (gradient) {
        grid.gradientFill("c", linearGradient(hcl(c(20, 200), 100, 60, .8),
                                              stops=c(.2, .8)))
    }
    if (raster) {
        # image is 1 inch wide == 72 pts => 72/8 = 9 pts for raster
        # (i.e., whole number of pts per pixel)
        grid.raster(matrix(c(0:1, 1:0), ncol=4, nrow=2), interp=FALSE,
                    x=.9, y=.8, width=1/9)
    }
}


###################################################
### code chunk number 3: potter-murrell.Rnw:59-67
###################################################
postscript("testimage-simple.ps", width=1, height=.5, 
           paper="special", horizontal=FALSE)
testimage("simple")
dev.off()
# for inclusion
pdf("testimage-simple.pdf", width=1, height=.5)
testimage("simple")
dev.off()


###################################################
### code chunk number 4: potter-murrell.Rnw:69-71
###################################################
PostScriptTrace("testimage-simple.ps", "testimage-simple.xml")
image <- readPicture("testimage-simple.xml")


###################################################
### code chunk number 5: potter-murrell.Rnw:73-74 (eval = FALSE)
###################################################
## grid.picture(image)


###################################################
### code chunk number 6: potter-murrell.Rnw:76-78
###################################################
library(png)
img <- readPNG(system.file("img", "Rlogo.png", package="png"))


###################################################
### code chunk number 7: potter-murrell.Rnw:80-104
###################################################
rpic <- function(FUN, lab=1) {
    grid.rect(gp=gpar(col=NA, fill="#DDDDDD"))
    # grid.raster(img, x=.1, y=.15, width=.1)
    switch(lab,
           grid.text("grImport", x=.1, rot=90, 
                     gp=gpar(col="grey60", fontface="italic", lineheight=1)),
           grid.text("grImport2", x=.1, rot=90, 
                     gp=gpar(fontface="italic", lineheight=1)),
           { grid.text("grImport2", x=.1, rot=90, 
                       gp=gpar(fontface="italic", lineheight=1))
             grid.text("+ gridSVG ", x=.18, rot=90, 
                       gp=gpar(col="grey60", cex=.7,
                           fontface="italic", lineheight=1))
           },
           { grid.text("grImport2", x=.1, rot=90, 
                       gp=gpar(fontface="italic", lineheight=1))
             grid.text("+ clipbbox ", x=.18, rot=90, 
                       gp=gpar(col="grey60", cex=.7,
                           fontface="italic", lineheight=1))
           }) 
    pushViewport(viewport(x=.2, width=.8, just="left"))
    FUN()
    popViewport()
}


###################################################
### code chunk number 8: potter-murrell.Rnw:106-109
###################################################
pdf("testimage-simple-grimport.pdf", width=2, height=1)
rpic(function() grid.picture(image) )
dev.off()


###################################################
### code chunk number 9: potter-murrell.Rnw:140-147
###################################################
postscript("testimage-raster.ps", width=1, height=.5, horizontal=FALSE)
testimage("raster", raster=TRUE)
dev.off()
# for inclusion
pdf("testimage-raster.pdf", width=1, height=.5)
testimage("raster", raster=TRUE)
dev.off()


###################################################
### code chunk number 10: potter-murrell.Rnw:149-151
###################################################
PostScriptTrace("testimage-raster.ps", "testimage-raster.xml")
image <- readPicture("testimage-raster.xml")


###################################################
### code chunk number 11: potter-murrell.Rnw:153-156
###################################################
pdf("testimage-raster-grimport.pdf", width=2, height=1)
rpic(function() grid.picture(image) )
dev.off()


###################################################
### code chunk number 12: potter-murrell.Rnw:189-194
###################################################
library(gridSVG)
library(grid)
gridsvg("testimage-semitrans.svg", width=1, height=.5)
testimage("semitrans", fill=TRUE, raster=TRUE)
dev.off()


###################################################
### code chunk number 13: potter-murrell.Rnw:196-202
###################################################
# for inclusion
system("convert -density 300x300 testimage-semitrans.svg testimage-semitrans.png")
# Deliberately exaggerate the rasterisation for dramatic effect
system("convert testimage-semitrans.svg testimage-semitrans-IM.ps")
# for inclusion
system("convert testimage-semitrans-IM.ps testimage-semitrans-IM.pdf")


###################################################
### code chunk number 14: potter-murrell.Rnw:204-206
###################################################
PostScriptTrace("testimage-semitrans-IM.ps", "testimage-semitrans-IM.xml")
image <- readPicture("testimage-semitrans-IM.xml")


###################################################
### code chunk number 15: potter-murrell.Rnw:208-211
###################################################
pdf("testimage-semitrans-IM-grimport.pdf", width=2, height=1)
rpic(function() grid.picture(image) )
dev.off()


###################################################
### code chunk number 16: potter-murrell.Rnw:246-251
###################################################
library(gridSVG)
library(grid)
gridsvg("testimage-gradient.svg", width=1, height=.5)
testimage("gradient", gradient=TRUE, raster=TRUE)
dev.off()


###################################################
### code chunk number 17: potter-murrell.Rnw:253-258
###################################################
# for inclusion
system("convert -density 300x300 testimage-gradient.svg testimage-gradient.png")
system("inkscape --export-ps=testimage-gradient-inkscape.ps --export-text-to-path testimage-gradient.svg")
# For inclusion
system("inkscape --export-pdf=testimage-gradient-inkscape.pdf --export-text-to-path testimage-gradient.svg")


###################################################
### code chunk number 18: potter-murrell.Rnw:260-262
###################################################
PostScriptTrace("testimage-gradient-inkscape.ps", "testimage-gradient-inkscape.xml")
image <- readPicture("testimage-gradient-inkscape.xml")


###################################################
### code chunk number 19: potter-murrell.Rnw:264-267
###################################################
pdf("testimage-gradient-inkscape-grimport.pdf", width=2, height=1)
rpic(function() grid.picture(image) )
dev.off()


###################################################
### code chunk number 20: potter-murrell.Rnw:311-312
###################################################
library(grConvert)


###################################################
### code chunk number 21: potter-murrell.Rnw:314-315 (eval = FALSE)
###################################################
## convertPicture("testimage-simple.svg", "testimage-simple.ps")


###################################################
### code chunk number 22: potter-murrell.Rnw:375-376
###################################################
library(grImport2)


###################################################
### code chunk number 23: potter-murrell.Rnw:378-384
###################################################
library(gridSVG)
gridsvg("testimage-simple.svg", width=1, height=.5)
testimage("simple")
dev.off()
# for inclusion
system("convert -density 300x300 testimage-simple.svg testimage-simple.png")


###################################################
### code chunk number 24: potter-murrell.Rnw:386-388
###################################################
convertPicture("testimage-simple.svg", "testimage-simple-cairo.svg")
image <- readPicture("testimage-simple-cairo.svg")


###################################################
### code chunk number 25: potter-murrell.Rnw:390-391
###################################################
grid.picture(image)


###################################################
### code chunk number 26: potter-murrell.Rnw:393-396
###################################################
pdf("testimage-simple-grimport2.pdf", width=2, height=1)
rpic(function() { grid.picture(image) }, lab=2)
dev.off()


###################################################
### code chunk number 27: potter-murrell.Rnw:426-432
###################################################
library(gridSVG)
gridsvg("testimage-raster.svg", width=1, height=.5)
testimage("raster", raster=TRUE)
dev.off()
# for inclusion
system("convert -density 300x300 testimage-raster.svg testimage-raster.png")


###################################################
### code chunk number 28: potter-murrell.Rnw:434-436
###################################################
convertPicture("testimage-raster.svg", "testimage-raster-cairo.svg")
image <- readPicture("testimage-raster-cairo.svg")


###################################################
### code chunk number 29: potter-murrell.Rnw:438-439
###################################################
grid.picture(image)


###################################################
### code chunk number 30: potter-murrell.Rnw:441-444
###################################################
pdf("testimage-raster-grimport2.pdf", width=2, height=1)
rpic(function() { grid.picture(image) }, lab=2)
dev.off()


###################################################
### code chunk number 31: potter-murrell.Rnw:465-471
###################################################
library(gridSVG)
gridsvg("testimage-semitrans.svg", width=1, height=.5)
testimage("semitrans", fill=TRUE, raster=TRUE)
dev.off()
# for inclusion
system("convert -density 300x300 testimage-semitrans.svg testimage-semitrans.png")


###################################################
### code chunk number 32: potter-murrell.Rnw:473-475
###################################################
convertPicture("testimage-semitrans.svg", "testimage-semitrans-cairo.svg")
image <- readPicture("testimage-semitrans-cairo.svg")


###################################################
### code chunk number 33: potter-murrell.Rnw:477-478
###################################################
grid.picture(image)


###################################################
### code chunk number 34: potter-murrell.Rnw:480-483
###################################################
pdf("testimage-semitrans-grimport2.pdf", width=2, height=1)
rpic(function() { grid.picture(image) }, lab=2)
dev.off()


###################################################
### code chunk number 35: potter-murrell.Rnw:516-522
###################################################
library(gridSVG)
gridsvg("testimage-gradient.svg", width=1, height=.5)
testimage("gradient", gradient=TRUE, raster=TRUE)
dev.off()
# for inclusion
system("convert -density 300x300 testimage-gradient.svg testimage-gradient.png")


###################################################
### code chunk number 36: potter-murrell.Rnw:524-526
###################################################
convertPicture("testimage-gradient.svg", "testimage-gradient-cairo.svg")
image <- readPicture("testimage-gradient-cairo.svg")


###################################################
### code chunk number 37: potter-murrell.Rnw:528-529
###################################################
grid.picture(image, ext="gridSVG")


###################################################
### code chunk number 38: potter-murrell.Rnw:531-532
###################################################
library(gridSVG)


###################################################
### code chunk number 39: potter-murrell.Rnw:534-535
###################################################
grid.export("testimage-gradient-grimport2-gridsvg.svg")


###################################################
### code chunk number 40: potter-murrell.Rnw:537-545
###################################################
pdf("testimage-gradient-grimport2.pdf", width=2, height=1)
rpic(function() { grid.picture(image) }, lab=2)
dev.off()
gridsvg("testimage-gradient-grimport2-gridsvg.svg", width=2, height=1)
rpic(function() { grid.picture(image, ext="gridSVG") }, lab=3)
dev.off()
# for inclusion
system("convert -density 300x300 testimage-gradient-grimport2-gridsvg.svg testimage-gradient-grimport2-gridsvg.png")


###################################################
### code chunk number 41: potter-murrell.Rnw:587-589 (eval = FALSE)
###################################################
## # For inclusion
## system("convert -density 300x300 Flag_of_Oklahoma.svg Flag_of_Oklahoma.png")


###################################################
### code chunk number 42: potter-murrell.Rnw:591-594
###################################################
convertPicture("Flag_of_Oklahoma.svg", "Flag_of_Oklahoma.ps")
PostScriptTrace("Flag_of_Oklahoma.ps", "Flag_of_Oklahoma.xml")
oklahomaPS <- grImport::readPicture("Flag_of_Oklahoma.xml")


###################################################
### code chunk number 43: potter-murrell.Rnw:596-597 (eval = FALSE)
###################################################
## grImport::grid.picture(oklahomaPS)


###################################################
### code chunk number 44: oklahoma-grimport
###################################################
rpic(function() { grImport::grid.picture(oklahomaPS) })


###################################################
### code chunk number 45: potter-murrell.Rnw:602-604
###################################################
convertPicture("Flag_of_Oklahoma.svg", "Flag_of_Oklahoma_cairo.svg")
oklahoma <- readPicture("Flag_of_Oklahoma_cairo.svg")


###################################################
### code chunk number 46: potter-murrell.Rnw:606-607 (eval = FALSE)
###################################################
## grid.picture(oklahoma)


###################################################
### code chunk number 47: oklahoma-grimport2
###################################################
pdf("oklahoma-grimport2.pdf", width=2, height=1)
rpic(function() { grid.picture(oklahoma) }, lab=2)
dev.off()


###################################################
### code chunk number 48: potter-murrell.Rnw:642-644 (eval = FALSE)
###################################################
## # For inclusion
## system("convert -density 100x100 Flag_of_Kansas.svg Flag_of_Kansas.png")


###################################################
### code chunk number 49: kansas-grimport2-gridsvg
###################################################
convertPicture("Flag_of_Kansas.svg", "Flag_of_Kansas_cairo.svg")
kansas <- readPicture("Flag_of_Kansas_cairo.svg")
grid.picture(kansas, ext="gridSVG")


###################################################
### code chunk number 50: potter-murrell.Rnw:651-652 (eval = FALSE)
###################################################
## grid.export("kansas-grimport2-gridsvg.svg")


###################################################
### code chunk number 51: potter-murrell.Rnw:654-659
###################################################
gridsvg("kansas-grimport2-gridsvg.svg", width=2, height=1)
rpic(function() { grid.picture(kansas, ext="gridSVG") }, lab=3)
dev.off()
# For inclusion
system("convert -density 300x300 kansas-grimport2-gridsvg.svg kansas-grimport2-gridsvg.png")


###################################################
### code chunk number 52: kansas-grimport2
###################################################
rpic(function() { grid.picture(kansas) }, lab=2)


###################################################
### code chunk number 53: potter-murrell.Rnw:705-707 (eval = FALSE)
###################################################
## # For inclusion
## system("convert -density 300x300 Flag_of_Hawaii.svg Flag_of_Hawaii.png")


###################################################
### code chunk number 54: hawaii-grimport
###################################################
convertPicture("Flag_of_Hawaii.svg", "Flag_of_Hawaii.ps")
PostScriptTrace("Flag_of_Hawaii.ps", "Flag_of_Hawaii.xml")
hawaiiPS <- grImport::readPicture("Flag_of_Hawaii.xml")
rpic(function() { grImport::grid.picture(hawaiiPS) })


###################################################
### code chunk number 55: hawaii-grimport2
###################################################
convertPicture("Flag_of_Hawaii.svg", "Flag_of_Hawaii_cairo.svg")
hawaii <- readPicture("Flag_of_Hawaii_cairo.svg")
pdf("hawaii-grimport2.pdf", width=2, height=1)
rpic(function() { grid.picture(hawaii, ext="clipbbox") }, lab=4)
dev.off()


###################################################
### code chunk number 56: potter-murrell.Rnw:748-750 (eval = FALSE)
###################################################
## # For inclusion
## system("convert -density 300x300 Flag_of_Ohio.svg Flag_of_Ohio.png")


###################################################
### code chunk number 57: ohio-grimport2-gridsvg
###################################################
convertPicture("Flag_of_Ohio.svg", "Flag_of_Ohio_cairo.svg")
ohio <- readPicture("Flag_of_Ohio_cairo.svg")
grid.picture(ohio, ext="gridSVG")


###################################################
### code chunk number 58: potter-murrell.Rnw:757-758
###################################################
grid.export("Flag_of_Ohio_gridsvg.svg")


###################################################
### code chunk number 59: potter-murrell.Rnw:760-765
###################################################
gridsvg("ohio-grimport2-gridsvg.svg", width=2, height=1)
rpic(function() { grid.picture(ohio, ext="gridSVG") }, lab=3)
dev.off()
# For inclusion
system("convert -density 300x300 ohio-grimport2-gridsvg.svg ohio-grimport2-gridsvg.png")


###################################################
### code chunk number 60: ohio-grimport2
###################################################
rpic(function() { grid.picture(ohio) }, lab=2)


###################################################
### code chunk number 61: potter-murrell.Rnw:811-814
###################################################
babynames <- read.csv("babies-names.csv", skip=7, nrow=5)
names <- factor(babynames$X.6, levels=babynames$X.6)
counts <- babynames$X.7


###################################################
### code chunk number 62: balloon
###################################################
convertPicture("noun_project_3663.svg", "balloon.svg")
balloon <- readPicture("balloon.svg")
grid.picture(balloon)


###################################################
### code chunk number 63: potter-murrell.Rnw:839-841
###################################################
library(lattice)
library(grid)


###################################################
### code chunk number 64: latticeballoon (eval = FALSE)
###################################################
## xyplot(counts ~ names, pch=16,
##        type="h", lty="dotted", lwd=3, col="grey",
##        ylab="", ylim=c(300, 750),
##        xlab="Most Popular Male Baby Names (NZ 2000)",
##        scales=list(x=list(draw=FALSE)),
##        panel=function(x, y, ...) {
##            panel.xyplot(x, y, ...)
##            grid.symbols(balloon, x, y, size=unit(3.5, "cm"))
##        })


###################################################
### code chunk number 65: potter-murrell.Rnw:855-860
###################################################
pdf("latticeballoon.pdf")
print(
xyplot(counts ~ names, pch=16,
       type="h", lty="dotted", lwd=3, col="grey",
       ylab="", ylim=c(300, 750),
       xlab="Most Popular Male Baby Names (NZ 2000)",
       scales=list(x=list(draw=FALSE)),
       panel=function(x, y, ...) {
           panel.xyplot(x, y, ...)
           grid.symbols(balloon, x, y, size=unit(3.5, "cm"))
       })
)
dev.off()


###################################################
### code chunk number 66: potter-murrell.Rnw:870-907
###################################################
library(grid)
cols <- hcl(seq(80, 260, length=5), 80, 60, .7)
cols2 <- hcl(seq(80, 260, length=5), 80, 40, .7)
makecol <- function() {
    colindex <- 0
    function() {
        colindex <<- colindex + 1
	cols[colindex]
    }
}
getcol <- makecol()
adjustFill <- function(gp) {
    if (!is.null(gp$fill))
        gp$fill <- getcol()
    gp
}
pdf("names.pdf", useDingbats=FALSE)
print(xyplot(counts ~ names, type="h", lty="dotted", lwd=3, col="grey",
             ylab="", ylim=c(300, 750),
             xlab="Most Popular Male Baby Names (NZ 2000)",
             scales=list(x=list(draw=FALSE)),
             par.settings=list(axis.line=list(lwd=3, col="grey60"),
                 axis.text=list(col="grey60")),
             panel=function(x, y, ...) {
                 panel.xyplot(x, y, ...)
                 grid.symbols(balloon, x, y,
                              size=unit(3.5, "cm"),
                              gpFUN=adjustFill)
                 grid.circle(x, y, r=unit(1, "mm"),
                             default="native",
                             gp=gpar(col=NA, fill=cols2))
                 grid.text(names, unit(x, "native"),
                           unit(y, "native") + unit(1, "lines"),
                           default="native", 
                           gp=gpar(col="white"))
             }))
dev.off()


###################################################
### code chunk number 67: potter-murrell.Rnw:961-963 (eval = FALSE)
###################################################
## # For inclusion
## system("convert -density 300x300 Flag_of_Arizona.svg Flag_of_Arizona.png")


###################################################
### code chunk number 68: arizona-grimport2-gridsvg
###################################################
convertPicture("Flag_of_Arizona.svg", "Flag_of_Arizona_cairo.svg")
arizona <- readPicture("Flag_of_Arizona_cairo.svg")
grid.picture(arizona)


###################################################
### code chunk number 69: arizona-grimport2
###################################################
rpic(function() { grid.picture(arizona) }, lab=2)


