eems.plots: A function to plot effective migration and diversity surfaces...

View source: R/eems.plots.R

eems.plotsR Documentation

A function to plot effective migration and diversity surfaces from EEMS output

Description

Given a vector of EEMS output directories, this function generates several figures to visualize EEMS results. It is a good idea to examine all these figures, which is why they are generated by default.

  • plotpath-mrates01: effective migration surface. This contour plot visualizes the estimated effective migration rates m, on the log10 scale after mean centering.

  • plotpath-mrates02: posterior probabilities P(m > 0 | diffs) and P(m < 0 | diffs) for each location in the habitat. Since migration rates are visualized on the log10 scale after mean centering, 0 corresponds to the overall mean migration rate. This contour plot emphasizes regions with effective migration that is significantly higher/lower than the overall average.

  • plotpath-qrates01: effective diversity surface. This contour plot visualizes the estimated effective diversity rates q, on the log10 scale after mean centering.

  • plotpath-qrates02: posterior probabilities P(q > 0 | diffs) and P(q < 0 | diffs). Similar to plotpath-mrates02 but applied to the effective diversity rates.

  • plotpath-rdist01: scatter plot of the observed vs the fitted between-deme component of genetic dissimilarity, where one point represents a pair of sampled demes.

  • plotpath-rdist02: scatter plot of the observed vs the fitted within-deme component of genetic dissimilarity, where one point represents a sampled deme.

  • plotpath-rdist03: scatter plot of observed genetic dissimilarities between demes vs observed geographic distances between demes.

  • plotpath-pilogl01: posterior probability trace

The mrates and qrates figures visualize (properties of) the effective migration and diversity rates across the habitat. The other figures can help to check that the MCMC sampler has converged (the trace plot pilogl) and that the EEMS model fits the data well (the scatter plots of genetic dissimilarities rdist).

Usage

eems.plots(
  mcmcpath,
  plotpath,
  longlat,
  plot.width = 10,
  plot.height = 10,
  out.png = NULL,
  res = 600,
  xpd = TRUE,
  add.grid = FALSE,
  col.grid = "gray80",
  lwd.grid = 1,
  add.demes = FALSE,
  col.demes = "black",
  pch.demes = 19,
  min.cex.demes = 1,
  max.cex.demes = 3,
  add.outline = FALSE,
  col.outline = "gray90",
  lwd.outline = 2,
  projection.in = NULL,
  projection.out = NULL,
  add.map = FALSE,
  col.map = "gray60",
  lwd.map = 2,
  eems.colors = NULL,
  prob.levels = c(0.9, 0.95),
  add.colbar = TRUE,
  m.colscale = NULL,
  q.colscale = NULL,
  remove.singletons = TRUE,
  add.abline = FALSE,
  add.r.squared = FALSE,
  add.title = TRUE,
  m.plot.xy = NULL,
  q.plot.xy = NULL,
  xy.coords = NULL
)

Arguments

mcmcpath

A vector of EEMS output directories, for the same dataset. Warning: There is minimal checking that the given directories are for the same dataset.

plotpath

The full path and the file name for the graphics to be generated.

longlat

A logical value indicating whether the coordinates are given as pairs (longitude, latitude) or (latitude, longitude).

plot.width

The width of the graphics region for the two rate contour plots, in inches. The default value is 10.

plot.height

The height of the graphics region, in inches. The default value is 10.

out.png

A logical value which, if set, forces output graphics to be generated as PNGs (if TRUE) or PDFs (if FALSE). If left unset, the format depends on the nature of the plot.

res

Resolution, in dots per inch; used only for PNG images. The default is 600.

xpd

A logical value indicating whether to clip plotting to the figure region (xpd = TRUE, which is the default) or clip plotting to the plot region (xpd = FALSE).

add.grid

A logical value indicating whether to add the population grid or not.

col.grid

The color of the population grid. Defaults to gray80.

lwd.grid

The line width of the population grid. Defaults to 1.

add.demes

A logical value indicating whether to add the observed demes or not.

col.demes

The color of the demes. Defaults to black.

pch.demes

The symbol, specified as an integer, or the character to be used for plotting the demes. Defaults to 19.

min.cex.demes

The minimum size of the deme symbol/character.

max.cex.demes

The maximum size of the deme symbol/character. Defaults to 1 and 3, respectively. If max.cex.demes > min.cex.demes, then demes with more samples also have bigger size: the deme with the fewest samples has size min.cex.demes and the deme with the most samples has size max.cex.demes.

add.outline

A logical value indicating whether to add the habitat outline or not.

col.outline

The color of the habitat outline. Defaults to white.

lwd.outline

The line width of the habitat outline. Defaults to 2.

projection.in

The input cartographic projection, specified as a PROJ.4 string.

projection.out

The output cartographic projection, specified as a PROJ.4 string.

add.map

A logical value indicating whether to add a high-resolution geographic map. Requires the rworldmap and rworldxtra packages. It also requires that projection.in is specified.

col.map

The color of the geographic map. Default is gray60.

lwd.map

The line width of the geographic map. Defaults to 2.

eems.colors

The EEMS color scheme as a vector of colors, ordered from low to high. Defaults to a DarkOrange to Blue divergent palette with six orange shades, white in the middle, six blue shades. Acknowledgement: The default color scheme is adapted from the dichromat package.

prob.levels

A vector of probabilities for plotting the posterior probability contours of P(m > 0 | diffs) and P(m < 0 | diffs). Defaults to c(0.9, 0.95).

add.colbar

A logical value indicating whether to add the color bar (the key that shows how colors map to rates) to the right of the plot. Defaults to TRUE.

m.colscale

A fixed range for log10-transformed migration rates. If the estimated rates fall outside the specified range, then the color scale is ignored. By default, no range is specified for either type of rates.

q.colscale

A fixed range for log10-transformed diversity rates.

remove.singletons

Remove demes with a single observation from the diagnostic scatter plots. Defaults to TRUE.

add.abline

Add the line y = x to the diagnostic scatter plots of observed vs fitted genetic dissimilarities.

add.r.squared

Add the R squared coefficient to the diagnostic scatter plots of observed vs fitted genetic dissimilarities.

add.title

A logical value indicating whether to add the main title in the contour plots. Defaults to TRUE.

m.plot.xy

Statements which add graphical elements (e.g. points) on top of the migration sufrace.

q.plot.xy

Statements which add graphical elements (e.g. points) on top of the diversity surface.

xy.coords

Additional coordinates at which to estimate the migration and diversity rates.

Details

The function eems.plots will work given the results from a single EEMS run (one directory in mcmcpath) but it is better to run EEMS several times, randomly initializing the MCMC chain each time. In other words, simulate several realizations of the Markov chain and let each realization start from a different state in the parameter space (by using a different random seed).

Detail about the within-deme and between-deme components of genetic dissimilarity: Let D(a,b) be the dissimilarity between one individual from deme a and another individual from deme b. Then the within-deme component for a and b is simply D(a,a) and D(b, b), respectively. The between-deme component is D(a,b) - [D(a,a) + D(b,b)] / 2 and it represents dissimilarity that is due to the spatial structure of the population and is not a consequence of the local diversity in the two demes.

Value

None

References

Light A and Bartlein PJ (2004). The End of the Rainbow? Color Schemes for Improved Data Graphics. EOS Transactions of the American Geophysical Union, 85(40), 385.

See Also

eems.voronoi.samples, eems.posterior.draws, eems.population.grid

Examples

# Use the provided example or supply the path to your own EEMS run.
extdata_path <- system.file("extdata", package = "reems")
eems_results <- file.path(extdata_path, "EEMS-example")
# Create a temporary output directory for the sake of the example
outdir <- file.path(tempdir(), "plot_out")
dir.create(outdir, showWarnings = FALSE) 
name_figures <- file.path(outdir, "EEMS-example")

# Produce the set of EEMS figures, with default values for all optional parameters.
eems.plots(
  mcmcpath = eems_results,
  plotpath = paste0(name_figures, "-default"),
  longlat = TRUE,
  out.png = FALSE
)

# Delete the temporary output directory to tidy up. 
unlink(outdir, recursive = TRUE, force = TRUE)

reems documentation built on May 6, 2026, 1:07 a.m.