radialplot: Visualise heteroscedastic data on a radial plot

View source: R/radialplot.R

radialplotR Documentation

Visualise heteroscedastic data on a radial plot

Description

Implementation of a graphical device developed by Rex Galbraith to display several estimates of the same quantity that have different standard errors. Serves as a vehicle to display finite and continuous mixture models.

Usage

radialplot(x, ...)

## Default S3 method:
radialplot(
  x,
  from = NA,
  to = NA,
  z0 = NA,
  transformation = "log",
  sigdig = 2,
  show.numbers = FALSE,
  pch = 21,
  levels = NA,
  clabel = "",
  bg = c("yellow", "red"),
  col = "black",
  k = 0,
  np = 3,
  markers = NULL,
  oerr = 3,
  units = "",
  hide = NA,
  omit = NULL,
  omit.col = NA,
  ...
)

## S3 method for class 'other'
radialplot(
  x,
  from = NA,
  to = NA,
  z0 = NA,
  xlim = NULL,
  transformation = "log",
  sigdig = 2,
  show.numbers = FALSE,
  pch = 21,
  levels = NA,
  clabel = "",
  bg = c("yellow", "red"),
  col = "black",
  k = 0,
  np = 3,
  markers = NULL,
  oerr = 3,
  units = "",
  hide = NA,
  omit = NULL,
  omit.col = NA,
  ...
)

## S3 method for class 'fissiontracks'
radialplot(
  x,
  from = NA,
  to = NA,
  z0 = NA,
  xlim = NULL,
  transformation = "arcsin",
  sigdig = 2,
  show.numbers = FALSE,
  pch = 21,
  levels = NA,
  clabel = "",
  bg = c("yellow", "red"),
  col = "black",
  markers = NULL,
  k = 0,
  np = 3,
  exterr = FALSE,
  oerr = 3,
  hide = NULL,
  omit = NULL,
  omit.col = NA,
  ...
)

## S3 method for class 'UPb'
radialplot(
  x,
  from = NA,
  to = NA,
  z0 = NA,
  xlim = NULL,
  transformation = "log",
  type = 4,
  cutoff.76 = 1100,
  cutoff.disc = discfilter(),
  show.numbers = FALSE,
  pch = 21,
  sigdig = 2,
  levels = NA,
  clabel = "",
  bg = c("yellow", "red"),
  col = "black",
  markers = NULL,
  k = 0,
  np = 3,
  exterr = FALSE,
  common.Pb = 0,
  oerr = 3,
  hide = NULL,
  omit = NULL,
  omit.col = NA,
  ...
)

## S3 method for class 'PbPb'
radialplot(
  x,
  from = NA,
  to = NA,
  z0 = NA,
  xlim = NULL,
  sigdig = 2,
  transformation = "log",
  show.numbers = FALSE,
  pch = 21,
  levels = NA,
  clabel = "",
  bg = c("yellow", "red"),
  col = "black",
  markers = NULL,
  k = 0,
  np = 3,
  exterr = FALSE,
  common.Pb = 2,
  oerr = 3,
  hide = NULL,
  omit = NULL,
  omit.col = NA,
  ...
)

## S3 method for class 'ArAr'
radialplot(
  x,
  from = NA,
  to = NA,
  z0 = NA,
  xlim = NULL,
  sigdig = 2,
  transformation = "log",
  show.numbers = FALSE,
  pch = 21,
  levels = NA,
  clabel = "",
  bg = c("yellow", "red"),
  col = "black",
  markers = NULL,
  k = 0,
  np = 3,
  exterr = FALSE,
  i2i = FALSE,
  oerr = 3,
  hide = NULL,
  omit = NULL,
  omit.col = NA,
  ...
)

## S3 method for class 'KCa'
radialplot(
  x,
  from = NA,
  to = NA,
  z0 = NA,
  xlim = NULL,
  sigdig = 2,
  transformation = "log",
  show.numbers = FALSE,
  pch = 21,
  levels = NA,
  clabel = "",
  bg = c("yellow", "red"),
  col = "black",
  markers = NULL,
  k = 0,
  np = 3,
  exterr = FALSE,
  i2i = FALSE,
  oerr = 3,
  hide = NULL,
  omit = NULL,
  omit.col = NA,
  ...
)

## S3 method for class 'ThPb'
radialplot(
  x,
  from = NA,
  to = NA,
  z0 = NA,
  xlim = NULL,
  sigdig = 2,
  transformation = "log",
  show.numbers = FALSE,
  pch = 21,
  levels = NA,
  clabel = "",
  bg = c("yellow", "red"),
  col = "black",
  markers = NULL,
  k = 0,
  np = 3,
  exterr = FALSE,
  i2i = TRUE,
  oerr = 3,
  hide = NULL,
  omit = NULL,
  omit.col = NA,
  ...
)

## S3 method for class 'UThHe'
radialplot(
  x,
  from = NA,
  to = NA,
  xlim = NULL,
  z0 = NA,
  sigdig = 2,
  transformation = "log",
  show.numbers = FALSE,
  pch = 21,
  levels = NA,
  clabel = "",
  bg = c("yellow", "red"),
  col = "black",
  markers = NULL,
  k = 0,
  np = 3,
  oerr = 3,
  hide = NULL,
  omit = NULL,
  omit.col = NA,
  ...
)

## S3 method for class 'ReOs'
radialplot(
  x,
  from = NA,
  to = NA,
  z0 = NA,
  xlim = NULL,
  sigdig = 2,
  transformation = "log",
  show.numbers = FALSE,
  pch = 21,
  levels = NA,
  clabel = "",
  bg = c("yellow", "red"),
  col = "black",
  markers = NULL,
  k = 0,
  np = 3,
  exterr = FALSE,
  i2i = TRUE,
  oerr = 3,
  hide = NULL,
  omit = NULL,
  omit.col = NA,
  ...
)

## S3 method for class 'SmNd'
radialplot(
  x,
  from = NA,
  to = NA,
  z0 = NA,
  xlim = NULL,
  sigdig = 2,
  transformation = "log",
  show.numbers = FALSE,
  pch = 21,
  levels = NA,
  clabel = "",
  bg = c("yellow", "red"),
  col = "black",
  markers = NULL,
  k = 0,
  np = 3,
  exterr = FALSE,
  i2i = TRUE,
  oerr = 3,
  hide = NULL,
  omit = NULL,
  omit.col = NA,
  ...
)

## S3 method for class 'RbSr'
radialplot(
  x,
  from = NA,
  to = NA,
  z0 = NA,
  xlim = NULL,
  sigdig = 2,
  transformation = "log",
  show.numbers = FALSE,
  pch = 21,
  levels = NA,
  clabel = "",
  bg = c("yellow", "red"),
  col = "black",
  markers = NULL,
  k = 0,
  np = 3,
  exterr = FALSE,
  i2i = TRUE,
  oerr = 3,
  hide = NULL,
  omit = NULL,
  omit.col = NA,
  ...
)

## S3 method for class 'LuHf'
radialplot(
  x,
  from = NA,
  to = NA,
  z0 = NA,
  xlim = NULL,
  sigdig = 2,
  transformation = "log",
  show.numbers = FALSE,
  pch = 21,
  levels = NA,
  clabel = "",
  bg = c("yellow", "red"),
  col = "black",
  markers = NULL,
  k = 0,
  np = 3,
  exterr = FALSE,
  i2i = TRUE,
  oerr = 3,
  hide = NULL,
  omit = NULL,
  omit.col = NA,
  ...
)

## S3 method for class 'ThU'
radialplot(
  x,
  from = NA,
  to = NA,
  z0 = NA,
  xlim = NULL,
  sigdig = 2,
  transformation = "log",
  show.numbers = FALSE,
  pch = 21,
  levels = NA,
  clabel = "",
  bg = c("yellow", "red"),
  col = "black",
  markers = NULL,
  k = 0,
  np = 3,
  Th0i = 0,
  oerr = 3,
  hide = NULL,
  omit = NULL,
  omit.col = NA,
  ...
)

Arguments

x

Either an [nx2] matix of (transformed) values z and their standard errors s

OR

and object of class fissiontracks, UThHe, ArAr, KCa, ReOs, SmNd, RbSr, LuHf, ThU, PbPb, ThPb or UPb

...

additional arguments to the generic points function

from

minimum age limit of the radial scale

to

maximum age limit of the radial scale

z0

central value

transformation

one of either log, linear, sqrt or arcsin (if x has class fissiontracks and fissiontracks$format \neq 1).

sigdig

the number of significant digits of the numerical values reported in the title of the graphical output.

show.numbers

boolean flag (TRUE to show grain numbers)

pch

plot character (default is a filled circle)

levels

a vector with additional values to be displayed as different background colours of the plot symbols.

clabel

label of the colour legend

bg

Fill colour for the plot symbols. This can either be a single colour or multiple colours to form a colour ramp (to be used if levels!=NA):

a single colour: rgb(0,1,0,0.5), '#FF000080', 'white', etc.;

multiple colours: c(rbg(1,0,0,0.5), rgb(0,1,0,0.5)), c('#FF000080','#00FF0080'), c('blue','red'), c('blue','yellow','red'), etc.;

a colour palette: rainbow(n=100), topo.colors(n=100,alpha=0.5), etc.; or

a reversed palette: rev(topo.colors(n=100,alpha=0.5)), etc.

for plot symbols, set bg=NA

col

text colour to be used if show.numbers=TRUE

k

number of peaks to fit using the finite mixture models of Galbraith and Laslett (1993). Setting k='auto' automatically selects an optimal number of components based on the Bayes Information Criterion (BIC). Setting k='min' estimates the minimum value using a three parameter model consisting of a Normal distribution truncated by a discrete component.

np

number of parameters for the minimum age model. Must be either 3 or 4.

markers

vector of ages of radial marker lines to add to the plot.

oerr

indicates whether the analytical uncertainties of the output are reported in the plot title as:

1: 1\sigma absolute uncertainties.

2: 2\sigma absolute uncertainties.

3: absolute (1-\alpha)% confidence intervals, where \alpha equales the value that is stored in settings('alpha').

4: 1\sigma relative uncertainties (\%).

5: 2\sigma relative uncertainties (\%).

6: relative (1-\alpha)% confidence intervals, where \alpha equales the value that is stored in settings('alpha').

units

measurement units to be displayed in the legend.

hide

vector with indices of aliquots that should be removed from the radial plot.

omit

vector with indices of aliquots that should be plotted but omitted from the central age calculation or mixture models.

omit.col

colour that should be used for the omitted aliquots.

xlim

maximum limit of the x-axis. If provided as a vector, uses the last value of that vector and ignores the first one.

exterr

include the external sources of uncertainty into the error propagation for the central age and mixture models?

type

scalar indicating whether to plot the ^{207}Pb/^{235}U age (type=1), the ^{206}Pb/^{238}U age (type=2), the ^{207}Pb/^{206}Pb age (type=3), the ^{207}Pb/^{206}Pb-^{206}Pb/^{238}U age (type=4), the concordia_age (type=5), or the ^{208}Pb/^{232}Th age (type=6). Ignored if x$format>8.

cutoff.76

the age (in Ma) below which the ^{206}Pb/^{238}U and above which the ^{207}Pb/^{206}Pb age is used. This parameter is only used if type=4.

cutoff.disc

discordance cutoff filter. This is an object of class discfilter.

common.Pb

common lead correction:

0: none

1: use the Pb-composition stored in

settings('iratio','Pb207Pb206') (if x has class UPb and x$format<4);

settings('iratio','Pb206Pb204') and settings('iratio','Pb207Pb204') (if x has class PbPb or x has class UPb and 3<x$format<7); or

settings('iratio','Pb206Pb208') and settings('iratio','Pb207Pb208') (if x has class UPb and x$format=7 or 8).

2: remove the common Pb by projecting the data along an inverse isochron. Note: choosing this option introduces a degree of circularity in the central age calculation. In this case the radial plot just serves as a way to visualise the residuals of the data around the isochron, and one should be careful not to over-interpret the numerical output.

3: use the Stacey-Kramers two-stage model to infer the initial Pb-composition

i2i

‘isochron to intercept’: calculates the initial (aka ‘inherited’, ‘excess’, or ‘common’) ^{40}Ar/^{36}Ar, ^{40}Ca/^{44}Ca, ^{207}Pb/^{204}Pb, ^{87}Sr/^{86}Sr, ^{143}Nd/^{144}Nd, ^{187}Os/^{188}Os, ^{230}Th/^{232}Th, ^{176}Hf/^{177}Hf or ^{204}Pb/^{208}Pb ratio from an isochron fit. Setting i2i to FALSE uses the default values stored in settings('iratio',...).

Note that choosing this option introduces a degree of circularity in the central age calculation. In this case the radial_plot plot just serves as a way to visualise the residuals of the data around the isochron, and one should be careful not to over-interpret the numerical output.

Th0i

initial ^{230}Th correction.

0: no correction

1: project the data along an isochron fit

2: if x$format is 1 or 2, correct the data using the measured present day ^{230}Th/^{238}U, ^{232}Th/^{238}U and ^{234}U/^{238}U activity ratios in the detritus. If x$format is 3 or 4, correct the data using the measured ^{238}U/^{232}Th activity ratio of the whole rock, as stored in x by the read.data() function.

3: correct the data using an assumed initial ^{230}Th/^{232}Th-ratio for the detritus (only relevant if x$format is 1 or 2).

Details

The radial plot (Galbraith, 1988, 1990) is a graphical device that was specifically designed to display heteroscedastic data, and is constructed as follows. Consider a set of dates \{t_1,...,t_i,...,t_n\} and uncertainties \{s[t_1],...,s[t_i],...,s[t_n]\}. Define z_i = z[t_i] to be a transformation of t_i (e.g., z_i = log[t_i]), and let s[z_i] be its propagated analytical uncertainty (i.e., s[z_i] = s[t_i]/t_i in the case of a logarithmic transformation). Create a scatter plot of (x_i,y_i) values, where x_i = 1/s[z_i] and y_i = (z_i-z_\circ)/s[z_i], where z_\circ is some reference value such as the mean. The slope of a line connecting the origin of this scatter plot with any of the (x_i,y_i)s is proportional to z_i and, hence, the date t_i.

These dates can be more easily visualised by drawing a radial scale at some convenient distance from the origin and annotating it with labelled ticks at the appropriate angles. While the angular position of each data point represents the date, its horizontal distance from the origin is proportional to the precision. Imprecise measurements plot on the left hand side of the radial plot, whereas precise age determinations are found further towards the right. Thus, radial plots allow the observer to assess both the magnitude and the precision of quantitative data in one glance.

Value

does not produce any numerical output, but does report the central age and the results of any mixture modelling in the title. An asterisk is added to the plot title if the initial daughter correction is based on an isochron regression, to highlight the circularity of using an isochron to compute a central age, and to indicate that the reported uncertainties do not include the uncertainty of the initial daughter correction. This is because this uncertainty is neither purely random nor purely systematic.

References

Galbraith, R.F., 1988. Graphical display of estimates having differing standard errors. Technometrics, 30(3), pp.271-281.

Galbraith, R.F., 1990. The radial plot: graphical assessment of spread in ages. International Journal of Radiation Applications and Instrumentation. Part D. Nuclear Tracks and Radiation Measurements, 17(3), pp.207-214.

Galbraith, R.F. and Laslett, G.M., 1993. Statistical models for mixed fission track ages. Nuclear Tracks and Radiation Measurements, 21(4), pp.459-470.

See Also

peakfit, central

Examples

attach(examples)
radialplot(FT1)

dev.new()
radialplot(LudwigMixture,k='min')

IsoplotR documentation built on Oct. 19, 2024, 5:07 p.m.