Learn R Programming

r4ss (version 1.36.1)

SSplotComparisons: plot model comparisons

Description

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.

Usage

SSplotComparisons(summaryoutput, subplots = 1:20, plot = TRUE,
  print = FALSE, png = print, pdf = FALSE, models = "all",
  endyrvec = "default", indexfleets = NULL, indexUncertainty = FALSE,
  indexQlabel = TRUE, indexQdigits = 4, indexSEvec = "default",
  indexPlotEach = FALSE, labels = c("Year", "Spawning biomass (t)",
  "Fraction of unfished", "Age-0 recruits (1,000s)",
  "Recruitment deviations", "Index", "Log index", "1 - SPR", "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 = "default", ylimAdj = 1.05, xaxs = "i", yaxs = "i",
  type = "o", uncertainty = TRUE, shadealpha = 0.1, legend = TRUE,
  legendlabels = "default", legendloc = "topright",
  legendorder = "default", legendncol = 1, sprtarg = NULL,
  btarg = NULL, minbthresh = NULL, pwidth = 6.5, pheight = 5,
  punits = "in", res = 300, ptsize = 10, cex.main = 1,
  plotdir = NULL, filenameprefix = "", densitynames = c("SSB_Virgin",
  "R0"), densityxlabs = "default", 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)

Arguments

summaryoutput

List created by SSsummarize

subplots

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

Note that this represents a revision in the numbering for 7 and higher from the numbering used up to r4ss version 1.36.0 which was as follows:

  • 18 F value with uncertainty

  • 7 recruits

  • 8 recruits with uncertainty

  • 9 recruit devs

  • 10 recruit devs with uncertainty

  • 11 index fits

  • 12 index fits on a log scale

  • 13 phase plot

  • 14 densities

  • 15 cumulative densities

plot

Plot to active plot device?

print

Send plots to PNG files in directory specified by plotdir?

png

Has same result as print, included for consistency with SS_plots.

pdf

Write output to PDF file? Can't be used in conjunction with png or print.

models

Optional subset of the models described in summaryoutput. Either "all" or a vector of numbers indicating columns in summary tables.

endyrvec

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.

indexfleets

Vector of fleet numbers for each model for which to compare indices of abundance. Only necessary if any model has more than one index.

indexUncertainty

Show uncertainty intervals on index data? Default=FALSE because if models have any extra standard deviations added, these intervals may differ across models.

indexQlabel

Add catchability to legend in plot of index fits (TRUE/FALSE)?

indexQdigits

Number of significant digits for catchability in legend (if indexQlabel=TRUE)

indexSEvec

Optional replacement for the SE values in summaryoutput$indices to deal with the issue of differing uncertainty by models described above.

indexPlotEach

TRUE plots the observed index for each model with colors, or FALSE just plots observed once in black dots.

labels

Vector of labels for plots (titles and axis labels)

col

Optional vector of colors to be used for lines. Input NULL makes use of rich.colors.short function.

shadecol

Optional vector of colors to be used for shading uncertainty intervals. Input NULL makes use of rich.colors.short function with alpha transparency.

pch

Optional vector of plot character values

lty

Optional vector of line types

lwd

Optional vector of line widths

spacepoints

Number of years between points shown on top of lines (for long timeseries, points every year get mashed together)

staggerpoints

Number of years to stagger the first point (if spacepoints > 1) for each line (so that adjacent lines have points in different years)

initpoint

Year value for first point to be added to lines. Points added to plots are those that satisfy (Yr-initpoint)%%spacepoints == (staggerpoints*iline)%%spacepoints

tickEndYr

TRUE/FALSE switch to turn on/off extra axis mark at final year in timeseries plots.

shadeForecast

TRUE/FALSE switch to turn on off shading of years beyond the maximum ending year of the models

xlim

Optional x limits

ylimAdj

Multiplier for ylim parameter. Allows additional white space to fit legend if necessary. Default=1.05.

xaxs

Choice of xaxs parameter (see ?par for more info)

yaxs

Choice of yaxs parameter (see ?par for more info)

type

Type parameter passed to points (default 'o' overplots points on top of lines)

uncertainty

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.

shadealpha

Transparency adjustment used to make default shadecol values (implemented as adjustcolor(col=col, alpha.f=shadealpha))

legend

Add a legend?

legendlabels

Optional vector of labels to include in legend. Default is 'model1','model2',etc.

legendloc

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 ?legend for more info on the string options.

legendorder

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.

legendncol

Number of columns for the legend.

sprtarg

Target value for SPR-ratio where line is drawn in the SPR plots and phase plot.

btarg

Target biomass value at which to show a line (set to 0 to remove)

minbthresh

Minimum biomass threshold at which to show a line (set to 0 to remove)

pwidth

Width of plot

pheight

Height of plot

punits

Units for PNG file

res

Resolution for PNG file

ptsize

Point size for PNG file

cex.main

Character expansion for plot titles

plotdir

Directory where PNG or PDF files will be written. By default it will be the directory where the model was run.

filenameprefix

Additional text to append to PNG or PDF file names. It will be separated from default name by an underscore.

densitynames

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

densityxlabs

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)

rescale

TRUE/FALSE control of automatic rescaling of units into thousands, millions, or billions

densityscalex

Scalar for upper x-limit in density plots (values below 1 will cut off the right tail to provide better contrast among narrower distributions

densityscaley

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

densityadjust

Multiplier on bandwidth of kernel in density function used for smoothing MCMC posteriors. See 'adjust' in ?density for details.

densitysymbols

Add symbols along lines in density plots. Quantiles are c(0.025,0.1,0.25,0.5,0.75,0.9,0.975).

densitytails

Shade tails outside of 95% interval darker in density plots?

densitymiddle

Shade middle inside of 95% interval darker in density plots?

densitylwd

Line width for density plots

fix0

Always include 0 in the density plots?

new

Create new empty plot window

add

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.

par

list of graphics parameter values passed to the par function

verbose

Report progress to R GUI?

mcmcVec

Vector of TRUE/FALSE values (or single value) indicating whether input values are from MCMC or to use normal distribution around MLE

show_equilibrium

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.

See Also

SS_plots, SSsummarize, SS_output, SSgetoutput

Examples

Run this code
# NOT RUN {
  
# }
# 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))

# }

Run the code above in your browser using DataLab