Nothing
## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
knitr::opts_chunk$set(dev.args = list(png = list(type = "cairo")))
## ----echo = TRUE, fig.height = 5, fig.width = 5-------------------------------
library(precisePlacement)
par(xpd = NA, oma = 1:4)
plot(1:10, pch = 19)
highlightDeviceRegion()
highlightFigureRegion()
highlightPlotRegion()
highlightDataRegion()
showMarginLines()
showOuterMarginLines()
legend('topleft', c('Data Region', 'Plot Region', 'Figure Region', 'Device Region'),
text.col = c('darkgreen', 'red', 'orange', 'skyblue'), bty = 'n', text.font = 2,
xjust = 0.5, yjust = 0.5)
## ---- echo = TRUE, fig.height = 3, fig.width = 3------------------------------
plot(1:10)
getLinesPerInch()
getInchesPerLine()
getDataPerLine()
getLinesPerDatum()
getDataPerInch()
getInchesPerDatum()
getPixelsPerInch()
getInchesPerPixel()
getPixelsPerLine()
getLinesPerPixel()
getPixelsPerDatum()
getDataPerPixel()
## ---- echo = TRUE, fig.height = 5, fig.width = 5------------------------------
plot(seq(as.Date('2018-01-01'), as.Date('2019-01-01'), length.out = 10), 1:10,
pch = 19, xlab = '', ylab = '')
## Identify the center of the plot.
abline(h = convertUnits('proportion', 0.5, 'data', axis = 'y'),
col = 'red', lwd = 4)
abline(v = convertUnits('proportion', 0.5, 'data', axis = 'x'),
col = 'blue', lwd = 4)
## Change the region we are defining the proportions from.
abline(v = convertUnits('proportion', 0.75, 'data', axis = 'x', region = 'plot'),
col = 'darkgreen', lwd = 4)
abline(v = convertUnits('proportion', 0.75, 'data', axis = 'x', region = 'device'),
col = 'orange', lwd = 4)
## ---- echo = TRUE, fig.height = 5, fig.width = 5------------------------------
par(xpd = NA, oma = c(0, 0, 0, 5))
plot(1:10, pch = 19)
legend(x = 11,
y = convertUnits('proportion', 0.5, 'data', axis = 'y', region = 'device'),
LETTERS[1:8], ncol = 1, bty = 'n', text.font = 2, text.col = 1:8,
xjust = 0.5, yjust = 0.5, cex = 3
)
## ---- echo = TRUE, fig.height = 5, fig.width = 5------------------------------
projects <- list(A = as.Date(c('2018-01-01', '2018-06-04')),
B = as.Date(c('2018-02-01', '2018-11-01')),
C = as.Date(c('2018-11-01', '2018-12-01')),
D = as.Date(c('2018-03-01', '2018-05-01')),
E = as.Date(c('2018-01-01', '2018-03-01')),
F = as.Date(c('2018-09-01', '2018-12-01')),
G = as.Date(c('2018-05-01', '2018-07-01'))
)
x <- seq(as.Date('2018-01-01'), as.Date('2019-01-01'), length.out = length(projects))
y <- 1:length(projects)
plot(x, y, xlim = range(x), ylim = c(0.5, length(projects) + 0.5),
type = 'n', xlab = 'Date', ylab = '', axes = FALSE, xaxs = 'i', yaxs = 'i')
axis(1, pretty(x), pretty(x))
axis(2, at = y, labels = names(projects), las = 2)
box()
lineWidth <- (getRange('plot', 'data')[2] / length(projects)) * getPixelsPerDatum()[2]
for (ii in seq_along(projects))
lines(projects[[ii]], rep(ii, 2), lwd = lineWidth, ljoin = 2, lend = 1)
## ---- echo = TRUE, fig.height = 7, fig.width = 7------------------------------
plot(1:10, pch = 19)
originalPar <- par()
## Select a region in terms of proportions of the existing one.
omi <- omiForSubFigure(0.5, 0.05, 0.95, 0.5, region = 'device')
par(omi = omi, new = TRUE, xpd = NA)
plot(1:10, pch = 19, col = 'red')
highlightFigureRegion()
## Reset to the original par otherwise we will be referencing the subplot.
originalPar[c('cin', 'cra', 'csi', 'cxy', 'din', 'page')] <- NULL
par(originalPar)
## Select a new region in terms of the original plotting units.
omi <- omiForSubFigure(2, 6, 5, 10, units = 'data')
par(omi = omi, mar = c(0, 0, 0, 0))
plot(1:10, pch = 19, col = 'red', xlab = '', ylab = '')
highlightFigureRegion()
## ---- echo = FALSE, fig.height = 7, fig.width = 7-----------------------------
par(xpd = NA)
oldPar <- par(mfrow = c(2, 2), oma = c(1.1,2.1,3.5,4.5))
##******
plot(1:10, pch = 19)
highlightDeviceRegion()
highlightFigureRegion()
highlightPlotRegion()
highlightDataRegion()
showMarginLines()
##******
par(mar = c(5,5,5,5))
plot(1:10, pch = 19)
highlightDeviceRegion()
highlightFigureRegion()
highlightPlotRegion()
highlightDataRegion()
showMarginLines()
##******
par(mar = c(2,2,2,2))
plot(1:10, pch = 19)
highlightDeviceRegion()
highlightFigureRegion()
highlightPlotRegion()
highlightDataRegion()
showMarginLines()
legend('topleft',
c('Data Region', 'Plot Region', 'Figure Region', 'Device Region'),
text.col = c('darkgreen', 'red', 'orange', 'skyblue'), bty = 'n', text.font = 2,
cex = 0.8, xjust = 0.5, yjust = 0.5)
##******
par(mar = c(2,5,2,2))
plot(1:10, pch = 19)
highlightDeviceRegion()
highlightFigureRegion()
highlightPlotRegion()
highlightDataRegion()
showMarginLines()
##******
showOuterMarginLines()
cat("par('mfg'): ", par('mfg'), '\n')
cat('Boundaries of data region:', getBoundaries('data'), '\n')
cat('Boundaries of plot region:', getBoundaries('plot'), '\n')
cat('Boundaries of figure region:', getBoundaries('figure'), '\n')
cat('Boundaries of device region:', getBoundaries('device'), '\n')
## ---- echo = TRUE, fig.height = 7, fig.width = 7------------------------------
par(xpd = NA, mfrow = c(2, 2))
plot(1:10, pch = 19)
plot(1:10, pch = 19)
plot(1:10, pch = 19)
plot(1:10, pch = 19)
print(getBoundaries('device', units = 'data'))
print(getBoundaries('device', units = 'lines'))
x <- getBoundaries('device', units = 'lines')
## lineLocations is a shortcut to using convertUnits.
abline(h = lineLocations(side = 1, 0:x[1]), col = 'red', lty = 2)
abline(v = lineLocations(side = 2, 0:x[2]), col = 'blue', lty = 2)
abline(h = lineLocations(side = 3, 0:x[3]), col = 'green', lty = 2)
abline(v = lineLocations(side = 4, 0:x[4]), col = 'black', lty = 2)
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.