stat_wb_relative {ggspectra} | R Documentation |
Integrate ranges under spectral curve.
Description
stat_wb_relative
computes means under a curve. It first integrates the
area under a spectral curve and also the mean expressed per nanaometre of
wavelength for each waveband in the input. Sets suitable default aesthetics
for "rect", "hline", "vline", "text" and "label" geoms displaying
values per waveband "relative" to the sum of the wavebands.
Usage
stat_wb_relative(
mapping = NULL,
data = NULL,
geom = "text",
w.band = NULL,
integral.fun = integrate_xy,
label.mult = 1,
chroma.type = "CMF",
label.fmt = "%1.2f",
ypos.mult = 1.07,
ypos.fixed = NULL,
position = "identity",
na.rm = FALSE,
show.legend = NA,
inherit.aes = TRUE,
...
)
Arguments
mapping |
The aesthetic mapping, usually constructed with
|
data |
A layer specific dataset - only needed if you want to override the plot defaults. |
geom |
The geometric object to use display the data |
w.band |
a waveband object or a list of waveband objects or numeric vector of at least length two. |
integral.fun |
function on $x$ and $y$. |
label.mult |
numeric Scaling factor applied to y-integral values before conversion into character strings. |
chroma.type |
character one of "CMF" (color matching function) or "CC"
(color coordinates) or a |
label.fmt |
character string giving a format definition for converting
y-integral values into character strings by means of function
|
ypos.mult |
numeric Multiplier constant used to scale returned
|
ypos.fixed |
numeric If not |
position |
The position adjustment to use for overlapping points on this layer |
na.rm |
a logical value indicating whether NA values should be stripped before the computation proceeds. |
show.legend |
logical. Should this layer be included in the legends?
|
inherit.aes |
If |
... |
other arguments passed on to |
Value
A data frame with one row for each waveband object in the argument
to w.band
. Wavebeand outside the range of the spectral data are
trimmed or discarded.
Computed variables
What it is named integral below is the result of appying integral.fun
to the data, with default integrate_xy
.
- y.label
yint multiplied by
label.mult
and formatted according tolabel.fmt
- x
w.band-midpoint
- wb.xmin
w.band minimum
- wb.xmax
w.band maximum
- wb.ymin
data$y minimum
- wb.ymax
data$y maximum
- wb.yint
data$y integral for each mebmer of w.band / sum of data$y integrals for all wavebands in w.band
- wb.xmean
yint divided by wl_expanse(w.band)
- y
ypos.fixed or top of data, adjusted by
ypos.mult
- wb.color
color of the w.band
- wb.name
label of w.band
- BW.color
black_or_white(wb.color)
Default aesthetics
Set by the statistic and available to geoms.
- label
..y.label..
- x
..x..
- xmin
..wb.xmin..
- xmax
..wb.xmax..
- ymin
..y.. - (..wb.ymax.. - ..wb.ymin..) * 0.03
- ymax
..y.. + (..wb.ymax.. - ..wb.ymin..) * 0.03
- yintercept
..wb.ymean..
- fill
..wb.color..
Required aesthetics
Required by the statistic and need to be set with aes()
.
- x
numeric, wavelength in nanometres
- y
numeric, a spectral quantity
See Also
Other stats functions:
stat_color()
,
stat_find_qtys()
,
stat_find_wls()
,
stat_label_peaks()
,
stat_peaks()
,
stat_spikes()
,
stat_wb_box()
,
stat_wb_column()
,
stat_wb_contribution()
,
stat_wb_hbar()
,
stat_wb_irrad()
,
stat_wb_label()
,
stat_wb_mean()
,
stat_wb_sirrad()
,
stat_wb_total()
,
stat_wl_strip()
,
stat_wl_summary()
Examples
library(photobiologyWavebands)
# ggplot() methods for spectral objects set a default mapping for x and y.
ggplot(sun.spct) +
geom_line() +
stat_wb_box(w.band = VIS()) +
stat_wb_relative(w.band = VIS()) +
scale_fill_identity() + scale_color_identity()
ggplot(sun.spct) +
geom_line() +
stat_wb_box(w.band = VIS_bands()) +
stat_wb_relative(w.band = VIS_bands(), angle = 90, size = 2.5) +
scale_fill_identity() + scale_color_identity()
ggplot(sun.spct) +
geom_line() +
stat_wb_box(w.band = VIS_bands()) +
stat_wb_relative(w.band = VIS_bands(), angle = 90, size = 2.5,
label.mult = 100, label.fmt = "%3.0f%%") +
scale_fill_identity() + scale_color_identity()