riojaPlot
plots a set of variables in a stratigraphic
diagram. Diagrams can be plotted with lines, silhouettes, bars or
symbols of any combination of these element. riojaPlot
extends the older function strat.plot
in several ways:
variables can be grouped and displayed with different colours, a
cumulative summary plot can be added automatically based on the
grouping, a cluster dendrogram and resulting zones can be added
automatically, a secondary y-axis can be added to plot both depth and
age axes, and the figures margins are determined automatically depending
on the size and length of labels. Arguments to riojaPlot
that control the appearance of the plot are know as
styles. Styles can specified on a plot-by-plot basis or
can be saved and applied to multiple figures.
Please send questions, bug reports and suggestions for improvements and additions to [email protected].
To create a basic stratigraphic diagram just pass
riojaPlot
a data frame of variables to plot and and a data
frame with at least one column containing the y-axis variable (usually
sample depth or age). If the y-axis variable name is not specified
riojaPlot
will use the first column and label the y-axis
with the column name. The default plot is shown with lines and bars for
non-percentage data and as filled silhouettes (filled curves) and bars
for percentage daat (style scale.percent=TRUE
. Turn
silhouettes off and create plots with lines, bars or symbols by setting
styles plot.poly
, plot.line
,
plot.bars
or plot.symb
TRUE
or
FALSE
(all may be overlain).
library(riojaPlot)
library(rioja)
# use built-in data from Abernethy Forest
# see ?rioja::aber for citation
data(aber)
# extract pollen percentages
aber.poll <- aber$spec
# replace species codes with full taxon names
colnames(aber.poll) <- aber$names$Name
aber.chron <- aber$ages
# plot on depth scale (depth is the first column in chron)
riojaPlot(aber.poll, aber.chron)
These are percentage data so we scale the diagram for percentages and
plot on an age scale by passing the name of the appropriate column to
style yvar.name
. riojaPlot
will take the
y-axis from the first column of aber.chron
by default.
# scale for percentage data
riojaPlot(aber.poll, aber.chron,
yvar.name="Age (years BP)",
scale.percent=TRUE)
Or plot as bars.
# turn of silhouettes and lines, increase bar thickness
riojaPlot(aber.poll, aber.chron,
yvar.name="Age (years BP)",
scale.percent=TRUE,
plot.poly=FALSE,
plot.line=FALSE,
lwd.bar=3,
col.bar="black")
The y-axis doesn’t cover the whole range so we set the upper and lower limits manually.
# Specify y-axis limits
sapply(aber.chron, range)
#> Depth (cm) Age (14C years BP) Age (years BP)
#> [1,] 300 5515 6295
#> [2,] 550 12147 14229
riojaPlot(aber.poll, aber.chron,
yvar.name="Age (years BP)",
ymin=6000, ymax=14500, yinterval=500,
scale.percent=TRUE,
plot.poly=FALSE,
plot.line=FALSE,
lwd.bar=3,
col.bar="black")
By default riojaPlot
will plot all columns in the data
frame. In this example there are many rare taxa: we could either remove
these from the data frane prior to plotting or pass a character vector
of column names to plot to the argument selVars
. Here we
only plot taxa with max abundance greater than 5%. We also add
exaggeration curves. These are shown as silhouettes with a
multiplication factor of 2 by default by can be changed to lines with
different exaggeration using styles exag.mult
,
col.exag
, and col.line.exag
.
col.exag="auto" will use a transparent colour the same as the main curve.Use
exag.alpha`
to change transparency.
# reduce number of taxa and add exaggerations
# make a vector of taxon names with max abundance greater that 2 percent
mx <- apply(aber.poll, 2, max)
aber.sel <- names(mx[mx > 2])
riojaPlot(aber.poll, aber.chron, aber.sel,
scale.percent=TRUE,
plot.exag=TRUE)
To show a secondary y-axis simply pass the column name of the
secondary y-axis variable to style sec.yvar.name
. In this
example we use age (years BP) for the primary axis and depth for the
secondary axis and set plot.sec.axis
to TRUE. We also use
ymin
, ymax
and yinterval
to
fine-tune the start, end, and increment of the y-axis.
riojaPlot(aber.poll, aber.chron, aber.sel,
yvar.name="Age (years BP)",
sec.yvar.name="Depth (cm)",
plot.sec.axis=TRUE,
ymin=6000,
ymax=14300,
yinterval=500,
scale.percent=TRUE,
plot.exag=TRUE)
Individual can be assigned to a group and each group assigned a different colour. Cumulative plots can also be added showing the sum of each group.
To assign variables to groups pass a data frame of two columns, the first with the name of each variable (spelt exactly the same as in the data) and a column of group memberships. This should be a factor with the levels determining the order they appear in the legend. The names of the groups will be used in the cumulative plot legend so choose them wisely.
We can also italicise the names using the style
labels.italicise
, rotate them with srt.xlabel
,
and specify a label for the age variable to override the column name.
Here we plot a 14C age scale and use an expression
to
create a label with superscriped 14C.
# group taxa by type and add cumulative graph
# extract types
aber.types <- aber$names[, -1]
# convert pollen types to a factor
aber.types$Group <- factor(aber.types$Group, levels=c("Trees", "Shrubs", "Herbs"))
ylab <- expression(Age~"("*""^{14}*C~years~BP*")")
riojaPlot(aber.poll, aber.chron, aber.sel, aber.types,
yvar.name="Age (14C years BP)",
sec.yvar.name="Depth (cm)",
ylabel=ylab,
plot.sec.axis=TRUE,
ymin=5500,
ymax=12200,
yinterval=500,
scale.percent=TRUE,
plot.groups=TRUE,
plot.cumul=TRUE,
plot.exag=TRUE,
labels.italicise = TRUE,
srt.xlabel=45,
las.xaxis=2,
yBottom=0.05)
We can add a zonation to the plot in 3 ways. The first is to set the
styles do.clust
and plot.clust
and / or
plot.zones
to “auto” or the number of zones to show. This
will perform a constrained clustering using chclust
and
either add a dendrogram and/or zone lines to the diagram. The number of
zones can be estimated using a broken stick model
(plot.zones="auto"
see ?rioja::chclust
for
details) or specified (e.g. plot.zones=3
). Colour of the
zone lines can be changed with col.zones
. The zonation can
be based on all columns in the data (style
clust.use.selected=FALSE
) or only the displayed columns if
only a subset are selected using selVars
. Data can
optionally be transformed (clust.data.trans="sqrt"
), scaled
(clust.data.trans="scale"
) prior to clustering or used as
is (clust.data.trans="none"
, the default). Change the width
of the dendrogram using style clust.width=N
where N is the
required width as a fraction of the whole diagram width.
riojaPlot(aber.poll, aber.chron, aber.sel, aber.types,
sec.yvar.name="Depth (cm)",
yvar.name="Age (years BP)",
ymin=6000,
ymax=14300,
yinterval=500,
plot.sec.axis=TRUE,
scale.percent=TRUE,
plot.groups=TRUE,
plot.cumul=TRUE,
plot.exag=TRUE,
do.clust=TRUE,
clust.data.trans="sqrt",
plot.clust=TRUE,
plot.zones="auto",
labels.italicise = TRUE)
We can also generate a constrained cluster object and pass this to riojaPlot for plotting. Here we log10-transform the data prior to clustering.
aber.clust <- chclust(dist(log10(aber.poll+1)))
riojaPlot(aber.poll, aber.chron, aber.sel, aber.types, clust=aber.clust,
sec.yvar.name="Depth (cm)",
yvar.name="Age (years BP)",
ymin=6000,
ymax=14300,
yinterval=500,
plot.sec.axis=TRUE,
scale.percent=TRUE,
plot.groups=TRUE,
plot.cumul=TRUE,
plot.exag=TRUE,
clust.data.trans="sqrt",
plot.clust=TRUE,
plot.zones="auto",
labels.italicise = TRUE)
Finally, we can add a zonation at a different position in the
diagram. Here we add the zonation based on log10-transformed data to the
original diagram with a sqrt-transformed zonation for comparison. In
this case we set the right-hand limit of the original diagram with
xRight
and add the additional zonation to this space. This
is a bit of a contrived example but adding the zonation separately to
the diagram can be useful if we are plotting multiple datasets and want
the zonation on the far-right (see example in section 8).
aber.clust <- chclust(dist(log10(aber.poll+1)))
rp <- riojaPlot(aber.poll, aber.chron, aber.sel, aber.types,
sec.yvar.name="Depth (cm)",
yvar.name="Age (years BP)",
ymin=6000,
ymax=14300,
yinterval=500,
plot.sec.axis=TRUE,
scale.percent=TRUE,
plot.groups=TRUE,
plot.cumul=TRUE,
plot.exag=TRUE,
clust.data.trans="sqrt",
do.clust=TRUE,
plot.clust=TRUE,
plot.zones="auto",
labels.italicise = TRUE,
xRight = 0.9)
addRPClust(rp, aber.clust, xLeft=0.91, xRight=0.99)
Save settings as a style and apply to figure. Here we also full-width plot bars behind the curves.
mystyle <- makeStyles(
plot.sec.axis=TRUE,
scale.percent=TRUE,
plot.groups=TRUE,
plot.cumul=TRUE,
plot.exag=TRUE,
plot.poly=TRUE,
plot.bar="full",
bar.back=TRUE,
lwd.bar=0.5,
col.bar="lightgrey",
do.clust=TRUE,
plot.clust=TRUE,
plot.zones="auto",
srt.xlabel=45)
riojaPlot(aber.poll, aber.chron, aber.sel, aber.types, mystyle,
sec.yvar.name="Depth (cm)",
yvar.name="Age (years BP)",
ymin=6000,
ymax=14300,
yinterval=500)
We may want to plot different datasets in the same figure. For example, we may want to plot one set of variables with percentage scaling and the other with normal scaling where each variable is the same width. Or we may have two or more datasets measured at different depths of ages.
To combine different datasets we plot the first with function
riojaPlot
and the others with function
riojaPlot2
. We also need to specify the right-hand position
of each plot in fractions of the page width.
# Diatom data the Round Loch of Glenhead, Galloway, SW Scotland
# Shows recent acidification and small recovery
data(RLGH)
RLGH.names <- RLGH$names
RLGH.diat <- RLGH$spec
# plot only common taxa
mx <- apply(RLGH.diat, 2, max)
RLGH.sel <- colnames(RLGH.diat)[mx > 2]
RLGH.chron <- RLGH$depths
# data has 210Pb age based on years before coring (1980)
# Add new column with Years (CE)
RLGH.chron$Year <- 1980 - RLGH.chron$Age
# do a pH reconstruction using SWAP modern dataset (see ?rioja::SWAP)
data(SWAP)
# generate a WA model
SWAP.wa <- WA(SWAP$spec, SWAP$pH)
RLGH.pH <- predict(SWAP.wa, RLGH$spec)
# convert to data frame with single column
RLGH.pH <- data.frame(`DI-pH (SWAP)`=RLGH.pH$fit[, 1], check.names=FALSE)
rp <- riojaPlot(RLGH.diat, RLGH.chron,
yvar.name="Year",
scale.percent=TRUE,
y.rev=FALSE,
selVars=RLGH.sel,
ymax=1980,
xlabels=RLGH$names$TaxonName,
cex.xlabel=0.7,
labels.break.n=25,
xRight=0.9)
riojaPlot(RLGH.pH, RLGH.chron[, "Year", drop=FALSE],
riojaPlot=rp,
scale.minmax=FALSE,
plot.bar=FALSE,
plot.symb=TRUE,
symb.cex=0.6)
Here we add a zonation to the right of the above figure. There are only two significant zones in these data.
RLGH.clust <- chclust(dist(sqrt(RLGH.diat)))
rp <- riojaPlot(RLGH.diat, RLGH.chron,
yvar.name="Year",
scale.percent=TRUE,
y.rev=FALSE,
selVars=RLGH.sel,
ymax=1980,
xlabels=RLGH$names$TaxonName,
cex.xlabel=0.7,
labels.break.n=25,
xRight=0.8)
rp2 <- riojaPlot(RLGH.pH, RLGH.chron[, "Year", drop=FALSE],
riojaPlot=rp,
xRight=0.9,
scale.minmax=FALSE,
plot.bar=FALSE,
plot.symb=TRUE,
symb.cex=0.6)
rp3 <- addRPClustZone(rp2, RLGH.clust, col="blue")
addRPClust(rp3, RLGH.clust)
In the next example we combine pollen, magnetic susceptibility, LOI and biogenic silica data recorded in a core from Lago Grande di Monticchio and published by Allen et al. (1999). The core spans the last c. 100 kyr and the four datasets are measured at different depth intervals and resolutions. The data are downloaded from the NOAA paleoclimatology data archive (https://www.ncei.noaa.gov/products/paleoclimatology).
library(readxl)
library(dplyr)
# Import the data, assign pollen types to groups
fpath <- system.file("extdata/allen1999.xlsx", package="riojaPlot")
pollen <- read_excel(fpath, sheet="Pollen data", skip=2)
pollen.chron <- pollen %>% select(1)
pollen <- pollen %>% select(Pinus:`Other herbaceous taxa`)
types <- data.frame(Name=colnames(pollen), Group="Woody taxa")
types$Group[9:12] <- "Herbs"
types$Group <- factor(types$Group, levels=c("Woody taxa", "Herbs"))
mag <- read_excel(fpath, sheet="Magnetic susceptibility", skip=2)
mag.chron <- mag %>% select(1)
mag <- mag %>% select(`Mag Susc`) %>% mutate(`Mag Susc` = `Mag Susc` / 1000)
loi <- read_excel(fpath, sheet="Loss on ignition", skip=2)
loi.chron <- loi %>% select(1)
loi <- loi %>% select("LOI (wt %)")
BSi <- read_excel(fpath, sheet="Biogenic silica", skip=2)
BSi.chron <- BSi %>% select(1)
BSi <- BSi %>% select("BSi")
rp1 <- riojaPlot(pollen, pollen.chron, groups=types,
yinterval = 5000,
ymin = 0,
ymax=102000,
yvar.name = "Age BP",
scale.percent=TRUE,
plot.groups=TRUE,
do.clust = TRUE,
plot.zones = "auto",
plot.clust=TRUE,
plot.cumul=TRUE,
cex.cumul=0.6,
srt.xlabel=45,
xSpace = 0.01,
plot.bar=FALSE,
tcl=-0.1,
cex.yaxis=0.7,
cex.xlabel=0.8,
xRight = 0.7,
plot.line=FALSE
)
rp2 <- riojaPlot(mag, mag.chron[, "Age BP", drop=FALSE],
riojaPlot=rp1, xGap = 0.01,
xRight=0.8, scale.minmax=FALSE,
plot.bar=FALSE, plot.line=F,
plot.symb=TRUE, symb.cex=0.3)
rp3 <- riojaPlot(loi, loi.chron[, "Age BP", drop=FALSE],
riojaPlot=rp2,
xRight=0.9,
scale.minmax=FALSE, plot.bar=F,
plot.line=F, plot.symb=TRUE, symb.cex=0.3)
riojaPlot(BSi, BSi.chron[, "Age BP", drop=FALSE],
riojaPlot=rp3,
xRight=0.99,
scale.minmax=FALSE, plot.bar=FALSE,
plot.line=FALSE, plot.symb=TRUE, symb.cex=0.3)
In the above example the physical / chemical variables are measured on a large number of samples and we plot with symbols because these display the variability in the data more clearly than lines. It would be useful to fit a smooth through these data to highlight the trends. Here we plot the three phys/chem variables and fit a gam to each curve using a custom function to add the smooth to each plot.
fun.gam <- function(x, y, i, nm, style) {
tmp <- data.frame(x=y, y=x)
gam <- mgcv::gam(y ~ s(x, k=50), data=tmp)
x2 <- predict(gam, type="response")
lines(x2, y, col="blue", lwd=1)
}
rp <- riojaPlot(mag, mag.chron[, "Age BP", drop=FALSE],
yinterval = 5000,
ymin = 0,
ymax=102000,
xRight=0.3,
scale.minmax=FALSE,
plot.bar=FALSE,
plot.line=F,
plot.symb=TRUE,
plot.poly=FALSE,
symb.cex=0.3,
fun.xfront=fun.gam)
rp1 <- riojaPlot(loi, loi.chron[, "Age BP", drop=FALSE],
riojaPlot=rp,
xRight=0.5,
scale.minmax=FALSE, plot.bar=F, plot.line=F, plot.symb=TRUE,
symb.cex=0.3, fun.xfront=fun.gam)
riojaPlot(BSi, BSi.chron[, "Age BP", drop=FALSE],
riojaPlot=rp1,
xRight=0.7,
scale.minmax=FALSE, plot.bar=FALSE, plot.line=FALSE, plot.symb=TRUE,
symb.cex=0.3, fun.xfront=fun.gam)
Adding a column showing lithogy is experimental at the moment but it is possible to show basic lithology with different colours and / or pattern fills. To do this create a data frame with at least 3 columns - the top and bottom of each lithological unit, and the fill colour for that unit. You also have a define a custom function that takes this data frame and draws the lithology. Here we create a function that uses apply to loop through each row in the lithology dataframe and plot a filled rectangle in the lithology column.
library(purrr)
lithology <- data.frame(
top= c(300, 325, 375, 400, 420, 440, 464, 510, 535),
bottom=c(325, 375, 400, 420, 440, 464, 510, 535, 550),
lithology=c("Peat", "Mud", "NS", "Mud", "Mud2", "SiltyMud", "SiltyMud2", "Mud3", "Silt"),
colour=c("burlywood4", "saddlebrown", "NA", "brown4", "brown3", "navajowhite4",
"navajowhite3", "brown4", "lightsteelblue")
)
myfun2 <- function(x, style) {
x %>% pwalk(~rect(0, ..1, 1, ..2, col=..4))
}
mx <- apply(aber.poll, 2, max)
mx5 <- mx[mx>10]
rp <- riojaPlot(aber.poll, aber.chron, selVars=names(mx5), lithology=lithology,
sec.yvar.name="Age (years BP)",
sec.ymin=6000, sec.ymax=14000, sec.yinterval=500,
yvar.name="Depth (cm)",
plot.sec.axis = TRUE,
scale.percent=TRUE,
fun.lithology=myfun2)
There are several ways to do this. Variables are plotted in the order
they appear in the data, so rearrange the order of variables in the
original data. dplyr::select
offers a convenient way to do
this:
data.reordered <- data %>% select(var3, var1, var5) # and so on...
Another way is to create a character vector wi the variables in the
required order and pass this to selVars
:
myorder <- c("var3", "var1", "var5") # and so on...
riojaPlot(spec, chron, selVArs=myorder)
A quick way to sort variables accorging to their position in the
diagram is to set the style wa.order="bottomleft"
(or use
bottomright
for the opposite). This will sort variables
from those common at the base of the core on the left to those common at
the top on the right.
riojaPlot(aber.poll, aber.chron,
scale.percent=TRUE,
wa.order="bottomleft")
To have complete control you probably need to use option 1 - change the order in the original data. Here is an extended example in which we sort the taxa in the RLGH diatom data according to their pH optima. We also group the taxa into three pH classes based on their pH optima and display the groups and cumulative plot.
# these data only contain 41 most common taxa, so recalculate abundances to sum to 100 percent
RLGH.diat <- RLGH$spec
RLGH.diat <- vegan::decostand(RLGH.diat, method="total") * 100
optima <- SWAP.wa$coefficients %>%
data.frame() %>%
tibble::rownames_to_column(var="CODE")
optima2 <- data.frame(CODE=colnames(RLGH.diat)) %>%
dplyr::left_join(optima, by="CODE") %>%
mutate(Group=case_when(Optima <= 5.1 ~ "Acidobiont.",
Optima > 5.1 & Optima < 5.4 ~ "Acidophil.",
TRUE ~ "Acid intol."),
Group=factor(Group, levels=c("Acid intol.", "Acidophil.", "Acidobiont."))) %>%
mutate(Optima=ifelse(is.na(Optima), 5.5, Optima)) %>%
arrange(desc(Optima)) %>%
select(CODE, Group)
RLGH.diat <- RLGH.diat %>% select(optima2$CODE)
mx <- apply(RLGH.diat, 2, max)
RLGH.sel <- colnames(RLGH.diat)[mx > 3]
rp <- riojaPlot(RLGH.diat, RLGH.chron, groups=optima2,
yvar.name="Year",
scale.percent=TRUE,
y.rev=FALSE,
selVars=RLGH.sel,
ymax=1980,
yinterval=10,
xlabels=RLGH$names$TaxonName,
labels.italicise=TRUE,
cex.xlabel=0.7,
plot.poly=FALSE,
plot.line=FALSE,
lwd.bar=3,
xRight=0.9,
plot.groups=TRUE,
plot.cumul=TRUE,
col.group=c("mediumblue", "darkgrey", "red2"),
cumul.mult=0.3
)
riojaPlot(RLGH.pH, RLGH.chron[, "Year", drop=FALSE],
riojaPlot=rp,
scale.minmax=FALSE,
plot.bar=FALSE,
plot.symb=TRUE,
symb.cex=0.6)
Use the following styles (note, font sizes are specified relative to
the default size of 1): - cex.xaxis
= font size of x-axis
values (default 0.6) - cex.yaxis
= font size of y-axis
values (default 0.7) - cex.xlabel
= font size of x-axis
labels (default 0.9) - cex.ylabel
= font size of y-axis
labels (default 0.9) - cex.cumul
= font size of group names
in cumulative plot (default 0.7)
Use the style y.rev
to reverse the scale of y-axis
(default is TRUE, ie. values increase from top to bottom). Use the
styles ymin
, ymax
and yinterval
to change the start, end and interval values. The corresponding styles
sec.ymin
, sec.ymax
and
sec.yinterval
control the secondary y-axis scale.
Long names can be split by setting style
labels.break.long=TRUE
(the default). Names will be split
so no part if greater than labels.break.n
characters
(default 20).
Styles plot.top.axis
and plot.bottom.axis
allow plotting of the top and bottom x-axes. If there is not enough
space between the top axis and the taxon names use style
ylabPos
to fine-tune the gap (default 0.1).
data(aber)
aber.poll <- aber$spec
colnames(aber.poll) <- aber$names$Name
aber.chron <- aber$ages
riojaPlot(aber.poll, aber.chron,
scale.percent=TRUE,
min.width.pc=10,
plot.top.axis=TRUE)
Style plot.exag
takes a single value (TRUE or FALSE) to
add exaggerations to all curves but can also take a logical vector of
length equal to the number of columns in the x-variables data frame to
control exaggerations for each variable. The following example shows how
to add exaggerations for pollen types with maximum relative abundance
< 5 percent. We also change the exaggeration multiplier to 10 and set
the min widths of curves to 10% (default is 5%).
aber.poll <- aber$spec
colnames(aber.poll) <- aber$names$Name
aber.chron <- aber$ages
mx <- apply(aber.poll, 2, max)
exag.sel <- mx < 5
riojaPlot(aber.poll, aber.chron,
scale.percent=TRUE,
plot.exag=exag.sel,
exag.mult=10,
min.width.pc=10)
In this example we use geochemical data from Laguna del Maule published by Frugone-Álvarez et al. (2020) and downloaded from the NOAA Paleoclimate data archive (https://www.ncei.noaa.gov/products/paleoclimatology). The data we plot here contain 9 geochemical variables. Some (TS, TC, TIC and TOC) are measured at every interval but others only at selected depths. We plot magnetic susceptibility with symbols, TS, TC, TIC, TOC and BioSi with lines, and d15N and d13C with lines and symbols.
fpath <- system.file("extdata/maule2020geochem.txt", package="riojaPlot")
maule <- readr::read_delim(fpath, skip=158, show_col_types = FALSE)
maule.data <- maule %>% select(-(1:4))
maule.chron <- maule %>% select(1:4)
# How many measurements do we have for each variable:
unlist(lapply(maule.data, function(x) sum(!is.na(x))))
#> MS TS TC TIC TOC BioSi TN d15N d13C
#> 146 267 267 267 267 253 108 57 57
selsymb <- rep(FALSE, 9)
selsymb[c(1, 8:9)] <- TRUE
selbar <- rep(FALSE, 9)
selline <- rep(TRUE, 9)
selline[1] <- FALSE
riojaPlot(maule.data, maule.chron,
yvar.name="age_BP",
ymin=-100,
ymax=13300,
yinterval=500,
plot.bar=FALSE,
plot.poly=FALSE,
plot.line=selline,
plot.symb=selsymb,
symb.cex=0.5,
)
To also show the variables in different colours we need to group them.
groups <- data.frame(names=colnames(maule.data), groups=c(1, 2, 2, 2, 2, 2, 2, 3, 3))
riojaPlot(maule.data, maule.chron, groups=groups,
yvar.name="age_BP",
ymin=-100,
ymax=13300,
yinterval=500,
plot.bar=selbar,
plot.poly=FALSE,
plot.line=selline,
plot.symb=selsymb,
plot.groups=TRUE,
symb.cex=0.5
)
riojaPlot
will try to add a y-axis with a sensible upper
and lower limit and interval. It doesn’t always suceed. If the default
doesn’t work, try specifying values for ymin
,
ymax
and yinterval
(and corresponding
sec.ymin
etc. value for the seconday axis). If this still
doesn;t work you can pass a numeric vector of “tick values” to styles
ytks1
and ytks2
for the primary and secondary
axes respectively. In the plot above the y-axis values start at -100 and
increment in 500 which gives unusal values. To fix this we create a
vector of tick values from 0 to 13000 and use this.
myticks <- seq(0, 13000, by=500)
riojaPlot(maule.data, maule.chron, groups=groups,
yvar.name="age_BP",
ymin=-100,
ymax=13300,
plot.bar=selbar,
plot.poly=FALSE,
plot.line=selline,
plot.symb=selsymb,
plot.groups=TRUE,
ylabPos=2,
symb.cex=0.5,
ytks1=myticks
)
USe the style las=2
. You may also need to create a
larger space at the bottom of the figure using yBottom.
riojaPlot(maule.data, maule.chron, groups=groups,
yvar.name="age_BP",
ymin=-100,
ymax=13300,
yinterval=500,
plot.bar=FALSE,
plot.poly=FALSE,
plot.line=selline,
plot.symb=selsymb,
plot.groups=TRUE,
ylabPos=2.2,
symb.cex=0.5,
ytks1=myticks,
las.xaxis=2,
yBottom=0.06
)
To do this we supply plot.poly
etc. with a logical
vector to control the plotting of each curve then set the values of
these styles to FALSE for the rare types. Then we define a function to
plot symbols for the rare types and create a list of functions to plot
symbols only for the rare types.
aber.poll <- aber$spec
colnames(aber.poll) <- aber$names$Name
aber.chron <- aber$ages
# calculate of max of each column
mx <- apply(aber.poll, 2, max)
#create a logical vector which is TRUE for taxa with max < 5
sel <- mx < 5
# define a custom function to plot symbols
symb.fun <- function(x, y, i, nm, style) {
sel <- x > 0
if (sum(sel) > 0) {
points(rep(3, sum(sel)), y[sel], cex=0.4, pch=19)
}
}
# create a list of functions of length equal to the number of columns in the data
funlist <- lapply(1:ncol(aber.poll), function(x) symb.fun)
# now set the elements of the list where we don;t want to plot symbols to NULL
funlist[!sel] <- list(NULL)
# plot silhouettes and lines for taxa > 5% and apply our function to the others
riojaPlot(aber.poll, aber.chron,
scale.percent=TRUE,
plot.poly=!sel,
plot.bar = !sel,
plot.line=FALSE,
lwd.bar=0.6,
plot.exag=TRUE,
fun.xfront=funlist)
In the above example we plotted rare types as symbols. In the example we can expand the x-axis for rare types.
For percentage diagrams the width of each graph is scaled uniformly
so the percentage values for each graph are the same. We can change
these using the style graph.widths
which takes a vector of
relative widths. We can also change the x-axis labels for each graph by
supplying a numeric vector to style x.inc.pc
to set the
interval for x-values. Here we hide columns with maximum relative
abundance < 2%, and show those taxa with max < 5% as curves with 5
* normal width, and set the x-interval for these to 1% (rather than the
default of 10%). We could, of course, chose the columns manually to have
complete control over what is hidden and shown with expanded axes.
mx <- apply(aber.poll, 2, max) # calculate max % of each column
widths <- rep(1, ncol(aber.poll)) # generate numeric vector of widths, set to 1
inc <- rep(10, ncol(aber.poll)) # generate numeric vector of x-intervals, set to 10
selTaxa <- names(mx[mx > 2]) # generate character vector of column names to include in the figure
sel <- which(mx < 5) # generate a logical vector of columns to expand
widths[sel] <- 5 # set widths to 5 times normal width
inc[sel] <- 1 # set x-interval to 1%
riojaPlot(aber.poll, aber.chron, selVars=selTaxa,
scale.percent=TRUE,
graph.widths=widths,
min.width.pc=5,
x.pc.inc=inc,
cex.xaxis=0.5,
las.xaxis=2)
We can also change the widths for non-percent data. Here we return to the Laguna del Maule data in FAQ 7 and change the width of d15N and d13C columns to twice the standard width.
widths <- rep(1, ncol(maule.data))
#sel <- names(maule.data) %in% c("d15N", "d13C")
#widths[sel] <- 2
widths[8:9] <- 2
riojaPlot(maule.data, maule.chron, groups=groups,
yvar.name="age_BP",
ymin=-100,
ymax=13300,
yinterval=500,
plot.bar=FALSE,
plot.poly=FALSE,
plot.line=selline,
plot.symb=selsymb,
plot.groups=TRUE,
ylabPos=2.2,
symb.cex=0.5,
ytks1=myticks,
las.xaxis=2,
graph.widths=widths,
yBottom=0.06
)
riojaPlot
can plot surface sediment data, you just need
to think how to arrange samples on the y-axis. The example below plots
surface sediment diatom data from small ponds and pools in SE England
collected by Bennion (1994) (see ?rioja::Ponds) for details. Here we
arrange the samples along the TP gradient and plot the data against Lake
name with TP as a secondary y-axis.
data(Ponds)
# reorder the rows in decreasing TP
o <- order(Ponds$env$TP, decreasing=TRUE)
ponds.diat <- Ponds$spec[o, ]
ponds.TP <- data.frame(TP=round(Ponds$env$TP[o]), LakeName=Ponds$env$Name[o])
# replace taxon codes with names
colnames(ponds.diat) <- Ponds$names$Name
# remove rare species
mx <- apply(ponds.diat, 2, max)
ponds.sel <- colnames(ponds.diat)[mx > 10]
# With a large number of samples we would use points but with only 30
# in this data we use bars. Although the data are arranged in order of
# increasing TP they are not a temporally or spatially contiguous so
# lines or silhouettes are not appropriate.
riojaPlot(ponds.diat, ponds.TP, selVars=ponds.sel,
yvar.name="LakeName",
sec.yvar.name="TP",
sec.yinterval = 20,
plot.sec.axis=TRUE,
scale.percent=TRUE,
plot.poly=FALSE,
plot.line=FALSE,
plot.bar=TRUE,
col.bar="black",
lwd.bar = 2,
symb.cex=0.4,
cex.xlabel=0.6,
cex.yaxis=0.6,
wa.order="topleft",
labels.italicise=TRUE,
las.xaxis=2,
cex.xaxis=0.5)
It is currently only possible to plot different samples with
different coloured bars. Here we extend the example for FAQ 12 above and
classify the samples into different groups based on their TP, then plot
these different samples with different colours. We do this by creating a
character vector of colour names, that corresponds to the samples, then
pass this to style col.sep.bar
and set sep.bar
to true. We also create an expression to label the TP axis in the
correct units.
ponds.TP <- ponds.TP %>% mutate(bar.cols=case_when(TP < 100 ~ "green",
TP >= 100 & TP < 200 ~ "blue",
TP >= 200 & TP < 500 ~ "red",
TRUE ~ "orange"))
ylab <- expression(Total~Phosph.~(mu*gL^{-1}))
riojaPlot(ponds.diat, ponds.TP, selVars=ponds.sel,
yvar.name="LakeName",
sec.yvar.name="TP",
sec.ylabel=ylab,
sec.yinterval = 20,
plot.sec.axis=TRUE,
scale.percent=TRUE,
plot.poly=FALSE,
plot.line=FALSE,
plot.bar=TRUE,
col.bar="black",
sep.bar=TRUE,
col.sep.bar=ponds.TP$bar.cols,
lwd.bar = 10,
symb.cex=0.4,
cex.xlabel=0.6,
cex.yaxis=0.6,
wa.order="bottomleft",
labels.italicise=TRUE,
las.xaxis=2,
cex.xaxis=0.5)
riojaPlot
can also be used to plot multi-species
ecological time series (or spatial transect) data. Here we plot diatom
data from the UK Upland Waters Monitoring Network (https://uwmn.uk/). These are
epilithic diatom samples collected annually from 1988-2018 from Loch
Chon (Trossachs, Scotland). These data were collected to monitor the
potential recovery of the loch from previous acidification. The file of
diatom counts (expressed as relative abundance) also contains results of
a trend test based on a multivariate generalised linear model using the
manyglm
function in package mvabund
used to
identify taxa that have a significant increasing or decreasing temporal
trend.
We first re-order the taxa according to their trend over time and plot the data with silhouettes, coloured to show taxa with significant increasing, decreasing or no trend.
fpath <- system.file("extdata/LochChon.xlsx", package="riojaPlot")
chon <- readxl::read_excel(fpath, sheet="Diatoms")
sig_test <- readxl::read_excel(fpath, sheet="Sig_test")
chon.diat <- chon %>% select(-Year)
chon.year <- chon %>% select(Year)
# data has many rare species, remove these first
mx <- apply(chon.diat, 2, max)
chon.diat <- chon.diat[, mx > 3]
# Create a grouping variable based on significance of trend (increasing, decreasing or not sig.)
chon.groups <- data.frame(TaxonName=colnames(chon.diat)) %>%
left_join(sig_test, by="TaxonName") %>%
mutate(group = case_when(p_unadj < 0.1 & slope>0 ~ "Increasing",
p_unadj < 0.1 & slope<0 ~ "Decreasing",
TRUE ~ "Not sig"),
group=factor(group, levels=c("Increasing", "Not sig", "Decreasing"))) %>%
select(TaxonName, group)
# Sort variables according to significance
diat.order <- chon.groups %>% arrange(group) %>% pull(TaxonName)
chon.ordered <- chon.diat %>% select(!!diat.order)
riojaPlot(chon.ordered, chon.year, groups=chon.groups,
scale.percent=TRUE,
yinterval=1,
plot.poly=TRUE,
plot.line=FALSE,
plot.groups=TRUE,
cex.xlabel=0.6,
cex.yaxis=0.5,
labels.italicise=TRUE,
cex.xaxis=0.5,
col.group=c("darkgreen", "darkgrey", "darkred"))
This looks OK but we can “virtually” rotate this figure so it can be viewed as a stacked diagram. To do this we have to modify the axis labels and orientation of taxon names. We can’t easily do this using riojaPlot styles but we can suppress the plotting of names and x-axis and create a custom function to plot these in any style or position we wish.
# create list of blank names to suppress taxon names
names <- rep("", ncol(chon.ordered))
myfun <- function(x, y, i, nm, style) {
usr <- par("usr") # extract the x and y data limits of the plot
name <- bquote(italic(.(names(nm)))) # extract name from nm and italicise it
text(usr[2]-2, usr[4]+0.5, name, adj=c(0, 0), xpd=NA, srt=-90, cex=0.7)
xval <- seq(0, usr[2], by=10) # create a vector of labels for the axis
xlab <- rep("", length(xval))
axis(side=3, at=xval, labels=xlab, tcl=-0.2, cex.axis=0.5, mgp=c(3, 0.1, 0))
text(xval, usr[4]-0.5, xval, cex=0.5, srt=-90, adj=c(1, 0), xpd=NA) # ad the x-axis vales
}
riojaPlot(chon.ordered, chon.year, groups=chon.groups,
scale.percent=TRUE,
yinterval=1,
xlabels=names, # replace taxon names with a vector of blank names
ylabel = " ", # suppress y-axis label
plot.poly=TRUE,
plot.line=FALSE,
plot.groups=TRUE,
cex.xlabel=0.6,
cex.yaxis=0.5,
labels.italicise=TRUE,
cex.xaxis=0.5,
col.group=c("darkgreen", "darkgrey", "darkred"),
plot.bottom.axis=FALSE,
min.width.pc=10, # set minimum size of x-axes
fun.xfront=myfun)
Arbitrary zones can be added using function addRPZone
,
as either single lines, or as shaded rectangles. Simply save the
riojaPlot object and pass it to addRPZone
.
mx <- apply(aber.poll, 2, max)
aber.sel <- names(mx[mx > 2])
rp <- riojaPlot(aber.poll, aber.chron, aber.sel,
yvar.name="Age (years BP)",
ymin=6000,
ymax=14300,
yinterval=500,
scale.percent=TRUE,
plot.exag=TRUE)
# define zone lines at 11000 and 13000 years BP
myzones <- c(11000, 13000)
addRPZone(rp, myzones, col="red")
# add shaded zone from 6000 to 8000 years BP
addRPZone(rp, 6000, 8000)
# change colour and shading
addRPZone(rp, 13000, 13500, col="blue", alpha = 0.05)
# The zones above are plotted over the existing diagram.
# It is possible to plot zones or other annotations behind
# the diagram using a custom function supplied to style fun.plotback
# this takes 2 arguments, usr = vector of 4 numbers giving the
# coordinates of the plotting area in data units (x is 0-1)
# and fig,coordinates of the plotting area as fractions of the page size
fun.back <- function(usr, fig, style) {
print(usr)
rect(0, 8000, 1, 11000, col="lightblue1", border=NA)
}
rp <- riojaPlot(aber.poll, aber.chron, aber.sel,
yvar.name="Age (years BP)",
ymin=6000,
ymax=14300,
yinterval=500,
scale.percent=TRUE,
plot.exag=TRUE,
fun.plotback=fun.back
)
#> [1] 0 1 14300 6000
We can pass a character vector of custom names for each column using
style xlabels
and use expression
to create
names with superscripts, subscripts or greek letters.
nms <- colnames(maule.data)
nms[8] <- expression(delta^15*N)
We can also use function label_geochem
in package
tidypaleo
to automatically add annotations for a slected
range of common geochemical variables.
library(tidypaleo)
nms <- colnames(maule.data)
nms2 <- as.expression(sapply(nms, function(x) unlist(label_geochem(x)[[1]])))
riojaPlot(maule.data, maule.chron, groups=groups,
yvar.name="age_BP",
xlabels=nms2,
ymin=-100,
ymax=13300,
yinterval=500,
plot.bar=FALSE,
plot.poly=FALSE,
plot.line=selline,
plot.symb=selsymb,
plot.groups=TRUE,
ylabPos=2.2,
symb.cex=0.5,
ytks1=myticks,
las.xaxis=2,
graph.widths=widths,
yBottom=0.06
)
`riojaPlot
figures can be saved to file or copied to the
clipboard from R or RStudio. This will work but will not always give the
best diagram because the plot is scaled to the window it is drawn in,
and saving a plot that is already drawn to a different size or aspect
ratio may result in unexpected gaps between axes or truncated text. To
avoid this, place device calls around the plot to explicity draw the
figure to a graphics file. For a stand-alone figure pdf
is
appropriate. For a figure to include in a document or presentation
svg
will usually work best for embedding in recent MS
Office documents, or png
for earlier documents. Just be
careful that if you get an error during the plot to remember to call
dev.off()
to return plotting to the screen.
svg("Myplot1.svg", width=10, height=6) # figure dimensions in inches
# or pdf("Myplot.pdf", width=10, height=6) for output to a pdf file
riojaPlot(aber.poll, aber.chron, aber.sel,
yvar.name="Age (years BP)",
ymin=6000,
ymax=14300,
yinterval=500,
scale.percent=TRUE,
plot.exag=TRUE,
)
dev.off()
#> png
#> 2
To view a saved svg or pdf file use
cowplot::draw_image
.
cowplot::ggdraw() + cowplot::draw_image("Myplot1.svg")
Or save the plots to an object and combine using plot_grid:
svg("Myplot2.svg", width=10, height=6) # figure dimensions in inches
riojaPlot(aber.poll, aber.chron, aber.sel,
yvar.name="Age (years BP)",
ymin=6000,
ymax=14300,
yinterval=500,
scale.percent=TRUE,
plot.poly=FALSE
)
dev.off()
#> png
#> 2
p1 <- cowplot::ggdraw() + cowplot::draw_image("Myplot1.svg")
p2 <- cowplot::ggdraw() + cowplot::draw_image("Myplot2.svg")
cowplot::plot_grid(p1, p2, align="v", axis="tblr")
file.remove("Myplot1.svg")
#> [1] TRUE
file.remove("Myplot2.svg")
#> [1] TRUE
Yes, for diagrams with multiple parts you can pipe the output from
one section into the next. Use function riojaPlot2
to add
additional dataset to the plot. This is just a wrapper around
riojaPlot()
that takes a riojaPlot
object as
the first argument. Here is the example from section 8 above rewritten
to use the pipe.
riojaPlot(RLGH.diat, RLGH.chron,
yvar.name="Year",
scale.percent=TRUE,
y.rev=FALSE,
selVars=RLGH.sel,
ymax=1980,
xlabels=RLGH$names$TaxonName,
cex.xlabel=0.7,
labels.break.n=25,
xRight=0.9) |>
riojaPlot2(RLGH.pH, RLGH.chron[, "Year", drop=FALSE],
scale.minmax=FALSE,
plot.bar=FALSE,
plot.symb=TRUE,
symb.cex=0.6)
#> To cite package 'riojaPlot' in publications use:
#>
#> Juggins, S. (2025) riojaPlot: Stratigraphic diagrams in R, package version (0.1-21). (https://github.com/nsj3/riojaPlot).
#>
#> A BibTeX entry for LaTeX users is
#>
#> @Manual{,
#> title = {riojaPlot: Stratigraphic diagrams in R},
#> author = {Steve Juggins},
#> year = {2025},
#> note = {R package version 0.1-21},
#> url = {https://github.com/nsj3/riojaPlot},
#> }
If you try to plot too many variable in a single diagram the width of
each will be too small to show in a meaningful way and riojaPlot will
issue this error message. To fix this either reduce the number of
variables or increase the size of the plotting window. If you want to
view onscreen you can open a new plotting window with the
windows(width=10, height=5)
(on Windows) or
quartz(width=10, height=5)
(on MacOS), where width and
height are in inches. Don’t forget to close the windows when finished to
return plotting to the R/Rstudio plot window. If you want to save to
file just use function pdf()
or svg()
with
appropriate width / height (see FAQ 17 above).
fpath <- system.file("extdata/LochChon.xlsx", package="riojaPlot")
chon <- readxl::read_excel(fpath, sheet="Diatoms")
chon.diat <- chon %>% select(-Year)
chon.year <- chon %>% select(Year)
# this will give an error
riojaPlot(chon.diat, chon.year,
scale.percent=TRUE,
yinterval=1,
plot.poly=TRUE,
plot.line=FALSE,
plot.groups=TRUE,
cex.xlabel=0.6,
cex.yaxis=0.5,
labels.italicise=TRUE,
cex.xaxis=0.5)
#> Error in .riojaPlot2(d, yvar = yvar, y.rev = style$y.rev, scale.percent = style$scale.percent, : Too many variables, curves will be too small.
# but this will work
svg("MyPlot.svg", width=20, height=8)
riojaPlot(chon.diat, chon.year,
scale.percent=TRUE,
yinterval=1,
plot.poly=TRUE,
plot.line=FALSE,
plot.groups=TRUE,
cex.xlabel=0.6,
cex.yaxis=0.5,
labels.italicise=TRUE,
cex.xaxis=0.5)
dev.off()
#> png
#> 2
cowplot::ggdraw() + cowplot::draw_image("Myplot.svg")
file.remove("Myplot.svg")
#> [1] TRUE
## 11. List of modifiable styles and default values
```{=html}
<div class="tabwid tabwid_left"><style>.cl-b4342198{}.cl-b42af5c8{font-family:'Arial';font-size:11pt;font-weight:normal;font-style:normal;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;}.cl-b42e7694{margin:0;text-align:left;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);padding-bottom:5pt;padding-top:5pt;padding-left:5pt;padding-right:5pt;line-height: 1;background-color:transparent;}.cl-b42e769e{margin:0;text-align:left;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);padding-bottom:1pt;padding-top:1pt;padding-left:1pt;padding-right:1pt;line-height: 1;background-color:transparent;}.cl-b42e9ee4{width:1.5in;background-color:transparent;vertical-align: middle;border-bottom: 1.5pt solid rgba(102, 102, 102, 1.00);border-top: 1.5pt solid rgba(102, 102, 102, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-b42e9eee{width:5in;background-color:transparent;vertical-align: middle;border-bottom: 1.5pt solid rgba(102, 102, 102, 1.00);border-top: 1.5pt solid rgba(102, 102, 102, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-b42e9eef{width:1.5in;background-color:transparent;vertical-align: middle;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-b42e9ef8{width:5in;background-color:transparent;vertical-align: middle;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-b42e9f02{width:1.5in;background-color:transparent;vertical-align: middle;border-bottom: 1.5pt solid rgba(102, 102, 102, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-b42e9f03{width:5in;background-color:transparent;vertical-align: middle;border-bottom: 1.5pt solid rgba(102, 102, 102, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}</style><table data-quarto-disable-processing='true' class='cl-b4342198'><thead><tr style="overflow-wrap:break-word;"><th class="cl-b42e9ee4"><p class="cl-b42e7694"><span class="cl-b42af5c8">Style</span></p></th><th class="cl-b42e9eee"><p class="cl-b42e7694"><span class="cl-b42af5c8">Value</span></p></th></tr></thead><tbody><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">yvar.name</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8"></span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">sec.yvar.name</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8"></span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">ylabel</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8"></span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">sec.ylabel</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8"></span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">plot.sec.axis</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">FALSE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">scale.percent</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">FALSE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">scale.minmax</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">FALSE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">minmax</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">y.rev</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">TRUE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">ymin</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">ymax</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">yinterval</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">sec.ymin</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">sec.ymax</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">sec.yinterval</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">xlabels</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">wa.order</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">none</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">plot.bar</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">TRUE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">plot.line</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">TRUE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">plot.poly</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">FALSE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">plot.symb</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">FALSE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">do.clust</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">FALSE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">plot.clust</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">FALSE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">plot.zones</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">0</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">lwd.bar</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">0.5</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">lwd.line</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">1</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">lwd.poly.line</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">0.5</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">lwd.cumul.line</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">0.5</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">col.bar</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">grey</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">bar.back</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">FALSE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">col.symb</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">black</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">col.line</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">black</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">col.poly</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">darkgreen</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">col.poly.line</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">col.cumul.line</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">col.zones</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">red</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">col.zone.column</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">grey</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">lwd.zones</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">1</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">symb.pch</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">19</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">symb.cex</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">1</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">cex.xaxis</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">0.6</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">cex.yaxis</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">0.7</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">cex.ylabel</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">0.9</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">cex.xlabel</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">0.9</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">srt.xlabel</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">90</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">srt.ylabel</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">centre.xlabel</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">FALSE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">tcl</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">-0.2</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">cex.cumul</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">0.7</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">clust.data.trans</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">none</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">clust.use.selected</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">FALSE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">clust.width</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">0.05</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">graph.widths</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">1</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">plot.exag</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">FALSE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">col.exag</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">auto</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">col.exag.line</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">lwd.exag.line</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">0.6</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">exag.mult</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">2</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">exag.alpha</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">0.2</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">labels.break.long</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">TRUE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">labels.break.n</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">20</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">labels.italicise</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">FALSE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">plot.groups</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">FALSE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">plot.cumul</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">FALSE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">cumul.mult</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">1</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">col.group</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">darkgreen, darkkhaki, darkorange, darkred, deepskyblue, sienna3, darkgoldenrod3, darkseagreen, yellow3, darkgrey</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">xRight</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">0.99</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">xLeft</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">yBottom</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">0.05</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">yTop</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">fun.xback</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">fun.xfront</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">fun.plotback</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">fun.yaxis</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">ylabPos</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">xlabPos</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">0.1</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">xSpace</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">0.005</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">x.pc.omit0</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">TRUE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">lwd.axis</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">1</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">col.axis</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">black</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">col.baseline</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">grey</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">min.width.pc</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">5</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">las.xaxis</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">1</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">las.yaxis</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">1</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">ytks1</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">ytks2</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">omitMissing</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">TRUE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">col.sep.bar</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">black</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">sep.bar</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">FALSE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">plot.bottom.axis</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">TRUE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">plot.top.axis</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">FALSE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">cumulSpace</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">plot.yaxis</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">TRUE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">start.new.plot</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">TRUE</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">xGap</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">0.01</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">x.pc.inc</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">10</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">fun.lithology</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">lithology.width</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">0.03</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">user1</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">user2</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9eef"><p class="cl-b42e769e"><span class="cl-b42af5c8">user3</span></p></td><td class="cl-b42e9ef8"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-b42e9f02"><p class="cl-b42e769e"><span class="cl-b42af5c8">user4</span></p></td><td class="cl-b42e9f03"><p class="cl-b42e769e"><span class="cl-b42af5c8">NA</span></p></td></tr></tbody></table></div>
Allen, J.R.M. et al. (1999) Rapid environmental changes in southern Europe during the last glacial period. Nature, 400, 740-743.
Bennion, H. (1994) A diatom-phosphorus transfer function for shallow, eutrophic ponds in southeast England. Hydrobiologia, 275/276, 391-410.
Frugone-Álvarez, M. et al. (2020) Volcanism and climate change as drivers in Holocene depositional dynamic of Laguna del Maule (Andes of central Chile - 36S). Climate of the Past, DOI 10.5194/cp-2019-147.