Creates a user-chosen set of plots comparing model output from a summary of
multiple models, where the collection was created using the
SSsummarize
function.
SSplotComparisons(
summaryoutput,
subplots = 1:20,
plot = TRUE,
print = FALSE,
png = print,
pdf = FALSE,
models = "all",
endyrvec = NULL,
indexfleets = NULL,
indexUncertainty = TRUE,
indexQlabel = TRUE,
indexQdigits = 4,
indexSEvec = NULL,
indexPlotEach = FALSE,
labels = c("Year", "Spawning biomass (t)", "Fraction of unfished",
"Age-0 recruits (1,000s)", "Recruitment deviations", "Index", "Log index",
"SPR-related quantity", "Density", "Management target",
"Minimum stock size threshold", "Spawning output", "Harvest rate"),
col = NULL,
shadecol = NULL,
pch = NULL,
lty = 1,
lwd = 2,
spacepoints = 10,
staggerpoints = 1,
initpoint = 0,
tickEndYr = TRUE,
shadeForecast = TRUE,
xlim = NULL,
ylimAdj = 1.05,
xaxs = "i",
yaxs = "i",
type = "o",
uncertainty = TRUE,
shadealpha = 0.1,
legend = TRUE,
legendlabels = NULL,
legendloc = "topright",
legendorder = NULL,
legendncol = 1,
sprtarg = NULL,
btarg = NULL,
minbthresh = NULL,
pwidth = 6.5,
pheight = 5,
punits = "in",
res = 300,
ptsize = 10,
plotdir = NULL,
filenameprefix = "",
densitynames = c("SSB_Virgin", "R0"),
densityxlabs = NULL,
rescale = TRUE,
densityscalex = 1,
densityscaley = 1,
densityadjust = 1,
densitysymbols = TRUE,
densitytails = TRUE,
densitymiddle = FALSE,
densitylwd = 1,
fix0 = TRUE,
new = TRUE,
add = FALSE,
par = list(mar = c(5, 4, 1, 1) + 0.1),
verbose = TRUE,
mcmcVec = FALSE,
show_equilibrium = TRUE
)
List created by SSsummarize
Vector of subplots to be created Numbering of subplots is as follows:
1 spawning biomass
2 spawning biomass with uncertainty intervals
3 biomass ratio (hopefully equal to fraction of unfished)
4 biomass ratio with uncertainty
5 SPR ratio
6 SPR ratio with uncertainty
7 F value
8 F value with uncertainty
9 recruits
10 recruits with uncertainty
11 recruit devs
12 recruit devs with uncertainty
13 index fits
14 index fits on a log scale
15 phase plot
16 densities
17 cumulative densities
Plot to active plot device?
Send plots to PNG files in directory specified by
plotdir
?
Has same result as print
, included for consistency with
SS_plots
.
Write output to PDF file? Can't be used in conjunction with
png
or print
.
Optional subset of the models described in
summaryoutput
. Either "all" or a vector of numbers indicating
columns in summary tables.
Optional single year or vector of years representing the final year of values to show for each model. By default it is set to the ending year specified in each model.
Fleet numbers for each model to compare indices of abundance. Can take different forms:
NULL: (default) create a separate plot for each index as long as the fleet numbering is the same across all models.
integer: create a single comparison plot for the chosen index
vector of length equal to number of models: a single fleet number for each model to be compared in a single plot
list: list of fleet numbers associated with indices within each model to be compared, where the list elements are each a vector of the same length but the names of the list elements don't matter and can be absent.
Show uncertainty intervals on index data? Default=FALSE because if models have any extra standard deviations added, these intervals may differ across models.
Add catchability to legend in plot of index fits (TRUE/FALSE)?
Number of significant digits for catchability in legend
(if indexQlabel = TRUE
)
Optional replacement for the SE values in
summaryoutput[["indices"]]
to deal with the issue of differing uncertainty by
models described above.
TRUE plots the observed index for each model with colors, or FALSE just plots observed once in black dots.
Vector of labels for plots (titles and axis labels)
Optional vector of colors to be used for lines. Input NULL
makes use of rich.colors.short
function.
Optional vector of colors to be used for shading uncertainty
intervals. The default (NULL) is to use the same colors provided by
col
(either the default or a user-chosen input) and make them
more transparent by applying the shadealpha
input as an alpha
transparency value (using the adjustcolor()
function)
Optional vector of plot character values
Optional vector of line types
Optional vector of line widths
Number of years between points shown on top of lines (for long timeseries, points every year get mashed together)
Number of years to stagger the first point (if
spacepoints > 1
) for each line (so that adjacent lines have points in
different years)
Year value for first point to be added to lines. Points added to plots are those that satisfy (Yr-initpoint)%%spacepoints == (staggerpoints*iline)%%spacepoints
TRUE/FALSE switch to turn on/off extra axis mark at final year in timeseries plots.
TRUE/FALSE switch to turn on off shading of years beyond the maximum ending year of the models
Optional x limits
Multiplier for ylim parameter. Allows additional white space to fit legend if necessary. Default=1.05.
Choice of xaxs parameter (see ?par for more info)
Choice of yaxs parameter (see ?par for more info)
Type parameter passed to points (default 'o' overplots points on top of lines)
Show plots with uncertainty intervals? Either a single TRUE/FALSE value, or a vector of TRUE/FALSE values for each model, or a set of integers corresponding to the choice of models.
Transparency adjustment used to make default shadecol
values (implemented as adjustcolor(col=col, alpha.f=shadealpha)
)
Add a legend?
Optional vector of labels to include in legend. Default is 'model1','model2',etc.
Location of legend. Either a string like "topleft" or a
vector of two numeric values representing the fraction of the maximum in
the x and y dimensions, respectively. See help("legend")
for more info on
the string options.
Optional vector of model numbers that can be used to have the legend display the model names in an order that is different than that which is represented in the summary input object.
Number of columns for the legend.
Target value for SPR-ratio where line is drawn in the SPR plots and phase plot.
Target biomass value at which to show a line (set to 0 to remove)
Minimum biomass threshold at which to show a line (set to 0 to remove)
Default width of plots printed to files in units of
punits
. The default is pwidth=6.5
.
Height of plots printed to png files in units of punits
.
Default is designed to allow two plots per page, with pheight_tall
used
for plots that work best with a taller format and a single plot per page.
Units for pwidth
and pheight
. Can be "px"
(pixels), "in" (inches), "cm" (centimeters), or "mm" (millimeters).
The default is punits="in"
.
Resolution of plots printed to files.
The default is res = 300
.
Point size for plotted text in plots printed to files (see
help("png")
in R for details).
Directory where PNG or PDF files will be written. By default it will be the directory where the model was run.
Additional text to append to PNG or PDF file names. It will be separated from default name by an underscore.
Vector of names (or subset of names) of parameters or
derived quantities contained in summaryoutput[["pars"]][["Label"]]
or
summaryoutput[["quants"]][["Label"]]
for which to make density plots
Optional vector of x-axis labels to use in the density
plots (must be equal in length to the printed vector of quantities that
match the densitynames
input)
TRUE/FALSE control of automatic rescaling of units into thousands, millions, or billions
Scalar for upper x-limit in density plots (values below 1 will cut off the right tail to provide better contrast among narrower distributions
Scalar for upper y-limit in density plots (values below 1 will cut off top of highest peaks to provide better contrast among broader distributions
Multiplier on bandwidth of kernel in density function used for smoothing MCMC posteriors. See 'adjust' in ?density for details.
Add symbols along lines in density plots. Quantiles
are c(0.025,0.1,0.25,0.5,0.75,0.9,0.975)
.
Shade tails outside of 95% interval darker in density plots?
Shade middle inside of 95% interval darker in density plots?
Line width for density plots
Always include 0 in the density plots?
Create new empty plot window
Allows single plot to be added to existing figure. This needs to be combined with specific 'subplots' input to make sure only one thing gets added.
list of graphics parameter values passed to the par
function
Report progress to R GUI?
Vector of TRUE/FALSE values (or single value) indicating whether input values are from MCMC or to use normal distribution around MLE
Whether to show the equilibrium values for SSB. For some model comparisons, these might not be comparable and thus useful to turn off. Defaults to TRUE.
# NOT RUN {
# directories where models were run need to be defined
dir1 <- "c:/SS/mod1"
dir2 <- "c:/SS/mod2"
# read two models
mod1 <- SS_output(dir = dir1)
mod2 <- SS_output(dir = dir2)
# create list summarizing model results
mod.sum <- SSsummarize(list(mod1, mod2))
# plot comparisons
SSplotComparisons(mod.sum, legendlabels = c("First model", "Second model"))
# Example showing comparison of MLE to MCMC results where the mcmc would have
# been run in the subdirectory 'c:/SS/mod1/mcmc'
mod1 <- SS_output(dir = "c:/SS/mod1", dir.mcmc = "mcmc")
# pass the same model twice to SSsummarize in order to plot it twice
mod.sum <- SSsummarize(list(mod1, mod1))
# compare MLE to MCMC
SSplotComparisons(mod.sum,
legendlabels = c("MCMC", "MLE"),
mcmcVec = c(TRUE, FALSE)
)
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab