inst/doc/rmhPoster.R

### R code from vignette source 'rmhPoster.Rtex'

###################################################
### code chunk number 1: rmhPoster.Rtex:15-149
###################################################
library(lattice)
library(latticeExtra)
library(microplot)

## options needed by Hmisc::latex
options(latexcmd='pdflatex')
options(dviExtension='pdf')
if (nchar(Sys.which("open"))) {
  options(xdvicmd="open")      ## Macintosh, Windows, SMP linux
} else {
  options(xdvicmd="xdg-open")  ## ubuntu linux
}
## Hmisc::latex


## boxplot matrix of iris data
irisBW <-
  bwplot( ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width | Species,
         data=iris, outer=TRUE, as.table=TRUE,
         scales=list(alternating=FALSE),
         xlab=NULL,
         par.strip.text=list(cex=1.5))
names(dimnames(irisBW))[[2]] <- "Measurement"

## pdf of boxplot matrix
pdf("irisBW.pdf", width=7, height=7)  ## inch
useOuterStrips(irisBW)
suppress <- dev.off()


## twelve individual boxplots without axes
irisBW.update <-
update(irisBW,
       xlab=NULL,
       par.settings=list(
         layout.heights=layoutHeightsCollapse(),
         layout.widths=layoutWidthsCollapse(),
         axis.line=list(col="transparent")),
       layout=c(1,1)
       )

## horizontal axis
irisBW.axis <-
update(irisBW.update[1,1],
       scales=list(cex=.6),
       par.settings=list(layout.heights=list(axis.bottom=1, panel=0),
                         axis.line=list(col="black")))


## create 13 pdf files, one per boxplot and one more for the horizontal axis
pdf("irisBW%03d.pdf", onefile=FALSE, height=.4, width=1.6)  ## inch
irisBW.update  ## 12 individual boxplots without axes
suppress <- dev.off()

pdf("irisBW013.pdf", height=.4, width=1.6)  ## inch
irisBW.axis    ## horizontal axis
suppress <- dev.off()

## construct names of pdf files
graphnames <- paste0("irisBW", sprintf("%03i", 1:13), ".pdf")

## matrix of latex \includegraphics{} macros for each boxplot's pdf file
graphicsnames <- t(matrix(as.includegraphics(graphnames[1:12], height="2em", raise="-1.3ex"),
                          nrow=3, ncol=4,
                          dimnames=dimnames(irisBW)))




## Measurement by Species
BWMS.latex <- Hmisc::latex(graphicsnames, caption="\\Large Measurement by Species", where="!htbp",
                           label="BWMS", title="Measurement", file="BWMS.tex",
                           size="Large")
BWMS.latex$style <- "graphicx"
## BWMS.latex
## Hmisc::dvi(BWMS.latex, width=7, height=3)



## Measurement by Species with Axis
graphicsnamesA <- rbind(graphicsnames, as.includegraphics(graphnames[13], height="2em", raise="-1.3ex"))
BWMSA.latex <- Hmisc::latex(graphicsnamesA, caption="\\Large Measurement by Species, with $x$-scale",
                            where="!htbp",
                            n.rgroup=c(4, 1),
                            rgroup=c("\\vspace*{-1em}", "\\vspace*{-1.25em}"),
                            label="BWMSA", title="Measurement", file="BWMSA.tex",
                            size="Large")
BWMSA.latex$style <- "graphicx"
## BWMSA.latex
## Hmisc::dvi(BWMSA.latex, width=7, height=3)

## Species by Measurement
BWSM.latex <- Hmisc::latex(t(graphicsnames), caption="\\Large Species by Measurement", where="!htbp",
              label="BWSM", title="Species", file="BWSM.tex", size="large")
BWSM.latex$style <- "graphicx"
## BWSM.latex
## Hmisc::dvi(BWSM.latex, width=7.5, height=2)



## Individual boxes embedded into a more interesting table
iris.fivenum <-
sapply(levels(iris$Species),
       function(i) {
         tmp <- sapply(iris[iris$Species==i, 1:4], fivenum)
         dimnames(tmp)[[1]] <- c("min", "Q1", "med", "Q3", "max")
         tmp
       },
       simplify=FALSE)

## Species and Measurement in separate columns
BW5num <-
rbind(
data.frame(t(iris.fivenum[[1]]), "Box Plots"=graphicsnames[,1], check.names=FALSE),
data.frame(t(iris.fivenum[[2]]), "Box Plots"=graphicsnames[,2], check.names=FALSE),
data.frame(t(iris.fivenum[[3]]), "Box Plots"=graphicsnames[,3], check.names=FALSE))
BW5num$Measurement=names(iris)[1:4]
BW5num <- BW5num[, c(7,1:6)]

BW5num.latex <-
   Hmisc::latex(BW5num,
                 rowname=" ",
                 rowlabel="Species",
                 rgroup=levels(iris$Species),
                 n.rgroup=c(4,4,4),
                 cgroup=c("", "Five Number Summary", ""),
                 n.cgroup=c(1, 5, 1),
                 caption="\\Large Five Number Summary and Boxplots for each Species and Measurement",
                 label="irisBW5num",
                 where="!htbp")
BW5num.latex$style <- "graphicx"
## BW5num.latex  ## this line requires latex in the path
## print.default(BW5num.latex)  ## the content of the R variable is the filename of
                                ## the file containing the latex table environment

Try the microplot package in your browser

Any scripts or data that you put into this service are public.

microplot documentation built on March 18, 2022, 7:56 p.m.