View source: R/stat-wb-contribution.R
stat_wb_contribution | R Documentation |
stat_wb_contribution
integrates the area under a spectral curve. It
first integrates the area under the curve for each waveband and for the whole
curve and then expresses the integral for each band as a relative
contribution to the area under the whole spectral curve. Sets suitable
default aesthetics for "rect", "hline", "vline", "text" and "label" geoms
displaying "contributions" per waveband to the total of the spectral
integral. x
-scale transformations and axis flipping are
currently not supported.
stat_wb_contribution(
mapping = NULL,
data = NULL,
geom = "text",
position = "identity",
...,
w.band = NULL,
integral.fun = integrate_xy,
label.mult = 1,
chroma.type = "CMF",
label.fmt = "%1.2f",
ypos.mult = 1.07,
ypos.fixed = NULL,
na.rm = FALSE,
show.legend = NA,
inherit.aes = TRUE
)
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 |
position |
The position adjustment to use for overlapping points on this layer |
... |
other arguments passed on to |
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 |
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 |
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.
What it is named integral below is the result of appying integral.fun
to the data, with default integrate_xy
.
yint multiplied by label.mult
and formatted
according to label.fmt
w.band-midpoint
w.band minimum
w.band maximum
data$y minimum
data$y maximum
data$y integral for w.band / data$y integral for whole range of data$x
yint divided by wl_expanse(w.band)
ypos.fixed or top of data, adjusted by ypos.mult
color of the w.band
label of w.band
Set by the statistic and available to geoms.
..y.label..
..x..
..xmin..
..xmax..
..y.. - (..ymax.. - ..ymin..) * 0.03
..y.. + (..ymax.. - ..ymin..) * 0.03
..ymean..
..wb.color..
Required by the statistic and need to be set with aes()
.
numeric, wavelength in nanometres
numeric, a spectral quantity
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_hbar()
,
stat_wb_irrad()
,
stat_wb_label()
,
stat_wb_mean()
,
stat_wb_relative()
,
stat_wb_sirrad()
,
stat_wb_total()
,
stat_wl_strip()
,
stat_wl_summary()
library(photobiologyWavebands)
# ggplot() methods for spectral objects set a default mapping for x and y.
# Using defaults
ggplot(sun.spct) +
geom_line() +
stat_wb_box(w.band = VIS()) +
stat_wb_contribution(w.band = VIS()) +
scale_fill_identity() + scale_color_identity()
# Setting position and angle of the text
ggplot(sun.spct) +
geom_line() +
stat_wb_box(w.band = VIS_bands()) +
stat_wb_contribution(w.band = VIS_bands(), angle = 90, size = 2.5) +
scale_fill_identity() + scale_color_identity()
# Showing percentages, i.e., using a different format for numbers
ggplot(sun.spct) +
geom_line() +
stat_wb_box(w.band = VIS_bands()) +
stat_wb_contribution(w.band = VIS_bands(), size = 2.5,
label.mult = 100, label.fmt = "%3.0f%%") +
scale_fill_identity() + scale_color_identity()
# Including the name of the waveband, i.e., changing the mapping for label
ggplot(sun.spct, range = c(NA, 410)) +
geom_line() +
stat_wb_box(w.band = UV_bands(), color = "white") +
stat_wb_contribution(w.band = UV_bands(), size = 2.5,
label.mult = 100, label.fmt = "%3.0f%%",
mapping = aes(label = after_stat(paste(wb.name, y.label)))) +
scale_fill_identity() + scale_color_identity()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.