These methods return a ggplot object with an annotated plot of the spectral
data contained in a source_spct
or a source_mspct
object.
# S3 method for source_spct
autoplot(
object,
...,
w.band = getOption("photobiology.plot.bands", default =
list(photobiologyWavebands::UVC(), photobiologyWavebands::UVB(),
photobiologyWavebands::UVA(), photobiologyWavebands::PhR())),
range = getOption("ggspectra.wlrange", default = NULL),
norm = NA,
unit.out = getOption("photobiology.radiation.unit", default = "energy"),
pc.out = getOption("ggspectra.pc.out", default = FALSE),
label.qty = NULL,
span = NULL,
wls.target = "HM",
annotations = NULL,
geom = "line",
time.format = "",
tz = "UTC",
text.size = 2.5,
chroma.type = "CMF",
idfactor = NULL,
facets = FALSE,
plot.data = "as.is",
ylim = c(NA, NA),
object.label = deparse(substitute(object)),
na.rm = TRUE
)# S3 method for source_mspct
autoplot(
object,
...,
range = getOption("ggspectra.wlrange", default = NULL),
norm = NA,
unit.out = getOption("photobiology.radiation.unit", default = "energy"),
pc.out = getOption("ggspectra.pc.out", default = FALSE),
idfactor = TRUE,
facets = FALSE,
plot.data = "as.is",
object.label = deparse(substitute(object)),
na.rm = TRUE
)
A ggplot
object with a number of layers that depends on the
data and annotations. The data
member retains its original class
and metadata attributes.
a source_spct or a source_mspct object.
in the case of collections of spectra, additional arguments passed to the plot methods for individual spectra, otherwise currently ignored.
a single waveband object or a list of waveband objects.
an R object on which range()
returns a vector of length
2, with minimum and maximum wavelengths (nm).
numeric or character. Normalization to apply before plotting, If
object
is already normalized, the normalization is updated when a
unit conversion applied.
character string indicating type of radiation units to use
for plotting: "photon"
or its synonym "quantum"
, or
"energy"
.
logical, if TRUE
use percent instead of fraction of one
for normalized spectral data.
character string giving the type of summary quantity to use
for labels, one of "mean"
, "total"
, "contribution"
,
and "relative"
.
a peak is defined as an element in a sequence which is greater than all other elements within a window of width span centred at that element.
numeric vector indicating the spectral quantity values for
which wavelengths are to be searched and interpolated if need. The
character
strings "half.maximum"
and "half.range"
are
also accepted as arguments. A list with numeric
and/or
character
values is also accepted.
a character vector. For details please see sections Plot Annotations and Title Annotations.
character The name of a ggplot geometry, currently only
"area"
, "spct"
and "line"
. The default NULL
selects between them based on stacked
.
character Format as accepted by
strptime
.
character Time zone to use for title and/or subtitle.
numeric size of text in the plot decorations.
character one of "CMF"
(color matching function) or
"CC"
(color coordinates) or a
chroma_spct
object.
character Name of an index factor
used to identify
each spectrum when multiple spectra are included in a plot. It is used as
title to the guide in the plot and can include embedded spaces and new
lines.
logical or integer Indicating if facets are to be created for
the levels of idfactor
when spct
contain multiple spectra in
long form.
character Data to plot. Default is "as.is"
plotting
one line per spectrum. When passing "mean"
, "median"
,
"sum"
, "prod"
, "var"
, "sd"
, "se"
as
argument all the spectra must contain data at the same wavelength values.
numeric y axis limits,
character The name of the object being plotted.
logical.
The recognized annotation names are: "summaries"
, "peaks"
,
"peak.labels"
, "valleys"
, "valley.labels"
,
"wls"
, "wls.labels"
, "colour.guide"
,
"color.guide"
, "boxes"
, "segments"
, "labels"
.
In addition, "+"
is interpreted as a request to add to the already
present default annotations, "-"
as request to remove annotations
and "="
or missing"+"
and "-"
as a request to reset
annotations to those requested. If used, "+"
, "-"
or
"="
must be the first member of a character vector, and followed by
one or more of the names given above. To simultaneously add and remove
annotations one can pass a list
containing character
vectors
each assembled as described. The vectors are applied in the order they
appear in the list. To disable all annotations pass ""
or
c("=", "")
as argument. Adding a variation of an annotation already
present, replaces the existing one automatically: e.g., adding
"peak.labels"
replaces"peaks"
if present.
metadata retrieved from object object
is
paased to ggplot2::ggtitle()
as arguments for title
,
subtitle
and caption
. The specification for the title is
passed as argument to annotations
, and consists in the keyword
title
with optional modifiers selecting the kind of metatdata to
use, separated by colons. Up to three keywords separated by colons are
accepted, and correspond to title, subtitle and caption. The recognized
keywords are: "objt"
, "class"
, "what"
, "when"
,
"where"
, "how"
, "inst.name"
, "inst.sn"
,
"comment"
and "none"
are recognized as modifiers to
"title"
; "none"
is a placeholder. Default is
"title:objt"
or no title depending on the context.
The plot object returned is a ggplot (an object of class
"gg"
) and it can be added to or modified as any other ggplot. The
axis labels are encoded as plotmath expressions as they contain
superscripts and special characters. In 'ggplot2', plotmath expressions do
not obey theme settings related to text fonts, except for size
.
Scale limits are expanded so as to make space for the annotations. If
annotations are disabled, limits are not expanded unless
reserve.space
is passed to parameter annotations
.
The generic of the autoplot
method is defined in
package 'ggplot2'. Package 'ggspectra' defines specializations for the
different classes for storage of spectral data defined in package
photobiology
.
For details about normalization and arguments to parameter norm
,
please, see normalize
. If norm = NA
,
the default, normalize()
is not called. All other values passed
as argument to norm
result in a call to normalize()
with
this value as its argument. In the case of objects
created with 'photobiology' (<= 0.10.9) norm = "undo"
is not
supported. Be aware that calls to normalize()
remove any scaling
previously applied with fscale
methods.
For multiple spectra in long form spectral objects, with idfactor
= NULL
, the default, the name of the factor is retrieved from metadata. If
the character string passed as argument to idfactor
does not match
the one retrieved from the object, results in renaming of the pre-existing
factor. The default for collections of spectra is to create a factor named
"spct.idx"
, but if a different name is passed, it will be used
instead.
normalize
,
source_spct
,
waveband
,
photobiologyWavebands-package
and
autoplot
Other autoplot methods:
autoplot.calibration_spct()
,
autoplot.cps_spct()
,
autoplot.filter_spct()
,
autoplot.object_spct()
,
autoplot.raw_spct()
,
autoplot.reflector_spct()
,
autoplot.response_spct()
,
autoplot.waveband()
,
set_annotations_default()
autoplot(sun.spct)
autoplot(sun.spct, geom = "spct")
autoplot(sun.spct, unit.out = "photon")
autoplot(normalize(sun.spct))
autoplot(normalize(sun.spct), pc.out = TRUE)
# multiple spectra in long form
autoplot(sun_evening.spct)
autoplot(sun_evening.spct, facets = 1) # one column
autoplot(sun_evening.spct, facets = 2) # two columns
autoplot(sun_evening.spct, plot.data = "mean")
autoplot(sun_evening.spct, idfactor = "Sequence")
# multiple spectra as a collection
autoplot(sun_evening.mspct)
autoplot(sun_evening.mspct, facets = 1) # one column
autoplot(sun_evening.mspct, facets = 2) # two columns
autoplot(sun_evening.mspct, plot.data = "mean")
autoplot(sun_evening.mspct, idfactor = "Time")
Run the code above in your browser using DataLab