Nothing
## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(echo = TRUE)
require(prepplot)
require(ggplot2)
require(grid)
require(gridBase)
## ----ggplot, echo=FALSE, fig.height=3.5, fig.width=9, fig.cap="`prepplot` and `ggplot`"----
par(mfrow=c(1, 3), mgp=c(2,0.2,0), mar=c(3.1,4.1,4.1,1.6))
## prepplot grid default
prepplot(swiss$Education, swiss$Fertility,
## manage grid
gridx=TRUE, gridy=TRUE,
## annotation
xlab="Education", ylab="Fertility",
main="prepplot default grid")
points(Fertility ~ Education, swiss, pch=16, col="grey20", cex=1.3)
## prepplot ggplot like
prepplot(swiss$Education, swiss$Fertility,
## background color (like in version 0.7 of prepplot)
bg = "grey92",
## manage grid
gridx=TRUE, gridy=TRUE, col.grid="white", lty.grid="solid",
## manage axis annotation
cex=0.75, cex.lab=1.35, col.axis="black",
xlab="Education", ylab="Fertility",
## manage title
main="prepplot ggplot like",
cex.main=1.75, font.main=1, col.main="black")
points(Fertility ~ Education, swiss, pch=16, cex=1.3)
## add the default ggplot plot
## following the answer in StackOverflow question
# https://stackoverflow.com/questions/14124373/
# combine-base-and-ggplot-graphics-in-r-figure-window
plot.new()
vps <- baseViewports()
pushViewport(vps$figure) ## in the third plot region
vp1 <-plotViewport(c(0,0.5,1,0.25)) ## create new vp with margins
p <- ggplot(swiss, aes(Education, Fertility)) +
geom_point() + labs(title="ggplot default")
print(p, vp = vp1)
## ----default, fig.height=3, fig.cap="plot regions in `prepplot`, depending on `xaxs` and `yaxs`, where `xlim` and `ylim` correspond to the data ranges. The only structural element is the light grey background color."----
x <- 0:10
y <- -5:5
par(mfrow=c(1,2), mar=c(2.1, 4.1, 4.1, 2.1))
prepplot(x, y, main='default axis extension', bg="grey92", cex.axis=0.8, mgpx=c(2,0.25,0))
points(x,y, pch=16)
mtext('xaxs="r"', line=0.25, family="mono")
prepplot(x, y, xaxs="i", yaxs="i", main='limits match axis extent', bg="grey92", cex.axis=0.8, mgpx=c(2,0.25,0))
points(x,y, pch=16, xpd=TRUE)
mtext('xaxs="i"', line=0.25, family="mono")
## ----majorminor, fig.cap="Major and minor grid lines on white background"-----
par(mar=par("mar")-1, mgp=c(2,0.3,0))
prepplot(c(0,10), c(25,30), yticks=25:30, bg="white",
lwd.grid.minor=1, gridyminor=4, gridx=TRUE,
xlab="x axis label", ylab="y axis label",
main="Major/minor grid on white background")
## ----reuse, ref.label="ggplot", echo=TRUE, eval=FALSE-------------------------
# par(mfrow=c(1, 3), mgp=c(2,0.2,0), mar=c(3.1,4.1,4.1,1.6))
# ## prepplot grid default
# prepplot(swiss$Education, swiss$Fertility,
# ## manage grid
# gridx=TRUE, gridy=TRUE,
# ## annotation
# xlab="Education", ylab="Fertility",
# main="prepplot default grid")
# points(Fertility ~ Education, swiss, pch=16, col="grey20", cex=1.3)
# ## prepplot ggplot like
# prepplot(swiss$Education, swiss$Fertility,
# ## background color (like in version 0.7 of prepplot)
# bg = "grey92",
# ## manage grid
# gridx=TRUE, gridy=TRUE, col.grid="white", lty.grid="solid",
# ## manage axis annotation
# cex=0.75, cex.lab=1.35, col.axis="black",
# xlab="Education", ylab="Fertility",
# ## manage title
# main="prepplot ggplot like",
# cex.main=1.75, font.main=1, col.main="black")
# points(Fertility ~ Education, swiss, pch=16, cex=1.3)
# ## add the default ggplot plot
# ## following the answer in StackOverflow question
# # https://stackoverflow.com/questions/14124373/
# # combine-base-and-ggplot-graphics-in-r-figure-window
# plot.new()
# vps <- baseViewports()
# pushViewport(vps$figure) ## in the third plot region
# vp1 <-plotViewport(c(0,0.5,1,0.25)) ## create new vp with margins
# p <- ggplot(swiss, aes(Education, Fertility)) +
# geom_point() + labs(title="ggplot default")
# print(p, vp = vp1)
## ----parandmore, fig.cap='Some examples with `xaxs="i" and yaxs="i"`'---------
par(mfrow=c(2,2), mar=c(3.1, 4.1, 3.1, 2.1), mgp=c(2,0.5,0), xaxs="i", yaxs="i")
prepplot(xlim=c(0,9), ylim=c(0,12), bg="grey92", col.grid="grey98",
lty.grid=1, lwd.grid=1.5, gridx=0:9, gridy=seq(0,12,2),
xlab="x", ylab="y", cex = 0.7, mgpx=c(1.5,0.25,0),
mgpy=c(1.75,0.5,0), main="ggplot style")
prepplot(xlim=c(0,9), ylim=c(0,12),
gridx=0:9, gridy=seq(0,12,2),
xlab="x", ylab="y", cex = 0.7,
main="default grid lines")
prepplot(xlim=c(0,9), ylim=c(0,12), gridx=0:9, gridy=seq(0,12,2),
xlab="x", ylab="y", cex = 0.7, lty.grid="solid",
mgpx=c(2,0.5,0), main="default solid grid lines")
prepplot(ylim=c(0,12), xlim=c(0,9), stripesx=0:9,
xlab="x", yaxt="n", cex = 0.7, mgpx=c(2,0.5,0),
main="default vertical stripes, no y axis")
## ----barplots, fig.cap="Barplots on striped background, with slightly transparent bars", fig.width=7----
tab <- c(one=10, two=5, three=8, four=7, five=12, six=10, seven=9)
par(mfrow=c(1,2), mar=c(3.1, 4.1, 3.1, 2.1))
prepplot(ylim=c(0,8.5), xlim=c(-0.2,13),
yaxs="i", stripesx=seq(0,12,2),
xlab="Frequency", yaxt="n", cex = 0.8, mgpx=c(2,0.5,0),
main="Default colors", cex.main=1.2)
barplot(tab, col=rgb(0.5, 0.5, 0.5, 0.7),
border=FALSE, add=TRUE, xaxt="n",las=2, horiz=TRUE,
cex.names=0.8)
hks51 <- rgb(0, 152/256, 161/256)
prepplot(ylim=c(0,8.5), xlim=c(-0.2,13),
yaxs="i",
xticks=seq(0,12,2), stripesx=TRUE,
xlab="Frequency",
bg=rgb(235/256, 246/256, 246/256),
col.stripes = rgb(190/256, 226/256, 226/256, 0.4),
col.axis=hks51, cex=0.8, col.main=hks51,
yaxt="n", tcl=-0.2, mgpx=c(2,0.5,0),
main="Beuth colors",
cex.main=1.2, col.main=hks51)
barplot(tab,
col=rgb(0,152/256,161/256,0.7), border=FALSE, add=TRUE,
xaxt="n",las=2, horiz=TRUE, cex.names=0.8, col.axis=rgb(0,152/256,161/256))
## ----orient, fig.cap="Scatter plots with different orientation mark strategies", fig.height=6, fig.width=8----
par(mfrow=c(2,3), oma=c(2,0,0,0), mgp=c(2.25,0.5,0),
mar=c(3.1, 4.1, 3.1, 2.1))
## default axis system with grid lines
prepplot(xlim=swiss$Education, ylim=swiss$Fertility, mgpy=c(2.5,0.5,0),
xlab="Education", ylab="Fertility",
gridx=TRUE, gridy=TRUE, cex=0.8,
main="grid lines")
points(swiss$Education, swiss$Fertility, pch=16, col="grey20")
## stripes and grid lines
prepplot(xlim=swiss$Education, ylim=swiss$Fertility,
mgpy=c(2.5,0.5,0),
xlab="Education", ylab="Fertility",
stripesx=seq(-5,60,5), gridy=seq(30,100,10), cex=0.8,
xticks=seq(0,50,10), yticks = seq(40,90,10),
main="stripes and grid lines")
points(swiss$Education, swiss$Fertility, pch=16, col="grey20")
prepplot(xlim=range(swiss$Education), ylim=range(swiss$Fertility),
mgpy=c(2.5,0.5,0),
xlab="Education", ylab="Fertility",
gridx=seq(0,60,10), stripesy=seq(30,100,5), cex=0.8,
xticks=seq(0,50,10), yticks = seq(40,90,10),
main="stripes and grid lines")
points(swiss$Education, swiss$Fertility, pch=16, col="grey20")
## stripes only
prepplot(xlim=range(swiss$Education), ylim=range(swiss$Fertility),
mgpy=c(2.5,0.5,0), bg="grey90", col.stripes = "white",
xlab="Education", ylab="Fertility",
stripesx=seq(-5,60,5), stripesy=seq(30,100,5), cex=0.8,
xticks=seq(0,50,10), yticks = seq(40,90,10),
main="crossing stripes")
points(swiss$Education, swiss$Fertility, pch=16, col="grey20")
prepplot(xlim=range(swiss$Education), ylim=range(swiss$Fertility),
mgpy=c(2.5,0.5,0),
xlab="Education", ylab="Fertility",
stripesx=seq(-5,60,5), cex=0.8,
xticks=seq(0,50,10), yticks = seq(40,90,10),
main="only vertical stripes", bg="grey90", col.stripes = "white")
points(swiss$Education, swiss$Fertility, pch=16, col="grey20")
prepplot(xlim=range(swiss$Education), ylim=range(swiss$Fertility),
mgpy=c(2.5,0.5,0),
xlab="Education", ylab="Fertility",
stripesy=seq(30,100,5), cex=0.8,
yticks = seq(40,90,10), xticks=seq(0,50,10),
main="only horizontal stripes")
points(swiss$Education, swiss$Fertility, pch=16, col="grey20")
mtext(side=1, line=0.5,
'Some strategies are better than others ...',
cex=0.8, outer=TRUE, col="grey20")
## ----stripes, fig.cap="Plot region with horizontal stripes and a horizontal arrow axis at y=0"----
prepplot(0:10, -5:5, yticks=seq(-5,5,5),
stripesy=-5:5,
xlab="x", ylab="y", main="with stripes and arrow axis", cex=0.8, cex.main=1.2,
axis.arrow = c(0,NA),arrow.length = 0.5,arrow.width = 0.5,
lwd=2)
## ----datetime, fig.height=2, fig.cap="A time series. Stripes show down times, vertical lines show day boundaries"----
par(mar=c(1.5, 3, 3, 1), mgp=c(3,0.2,0))
xlim <- as.numeric(as.POSIXlt(c("2017-12-28 18:09:46","2018-01-02 09:15:22")))
stripelims <- as.numeric(as.POSIXlt(
c("2017-12-29 10:30:00","2017-12-29 12:00:00",
"2017-12-30 10:00:00","2017-12-30 12:30:00",
"2017-12-31 10:00:00","2017-12-31 12:30:00",
"2018-01-01 10:30:00","2018-01-01 11:30:00",
"2018-01-01 16:30:00","2018-01-01 17:45:00")))
griddatts <- as.POSIXlt(c(
"2017-12-29 00:00:00", "2017-12-30 00:00:00",
"2017-12-31 00:00:00", "2018-01-01 00:00:00",
"2018-01-02 00:00:00"))
gridposs <- as.numeric(griddatts)
tickposs <- gridposs + 12*3600
tickposs <- tickposs[tickposs < xlim[2]]
prepplot(xlim=xlim, ylim=c(-5,10),
stripesx=stripelims, xaxt="n", cex=0.7,
gridy=TRUE, gridyminor=4,
main="Date-time data with stripes and grid lines on same axis")
abline(v=gridposs, col="grey20")
axis(side=1, at=tickposs,
labels=as.Date(as.POSIXlt(tickposs, origin="1970-01-01 00:00.00 UTC")),
lwd=0, cex.axis=0.7)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.