stat_wl_strip
computes color definitions according to human vision and
by default plots a narrow, guide-like colour gradient strip based on
wavelength. x
-scale transformations and axis flipping are
currently not supported.
Usage
stat_wl_strip(
mapping = NULL,
data = NULL,
geom = "rect",
position = "identity",
...,
by.group = FALSE,
w.band = NULL,
length.out = 150,
chroma.type = "CMF",
na.rm = TRUE,
show.legend = FALSE,
inherit.aes = TRUE
)
wl_guide(
mapping = NULL,
data = NULL,
position = "identity",
...,
by.group = FALSE,
chroma.type = "CMF",
w.band = NULL,
length.out = 150,
ymin = -Inf,
ymax = Inf,
na.rm = FALSE,
show.legend = FALSE,
inherit.aes = TRUE
)
Arguments
- mapping
The aesthetic mapping, usually constructed with
aes
oraes_
. Only needs to be set at the layer level if you are overriding the plot defaults.- 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
layer
. This can include aesthetics whose values you want to set, not map. Seelayer
for more details.- by.group
logical flag If TRUE repeated identical layers are added for each group within a plot panel as needed for animation. If
FALSE
, the default, a single layer is added per panel.- w.band
waveband object or a list of such objects or NULL.
- length.out
The number of steps to use to simulate a continuous range of colours when w.band == NULL.
- chroma.type
character one of "CMF" (color matching function) or "CC" (color coordinates) or a
chroma_spct
object.- 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?
NA
, the default, includes if any aesthetics are mapped.FALSE
never includes, andTRUE
always includes.- inherit.aes
If
FALSE
, overrides the default aesthetics, rather than combining with them. This is most useful for helper functions that define both data and aesthetics and shouldn't inherit behaviour from the default plot specification, e.g.borders
.- ymin, ymax
numeric used as aesthetics for plotting the guide.
Details
By default stat_wl_strip()
uses a panel function and ignores
grouping as needed for annotation of layers supporting free axis scales.
Passing by.group = TRUE
as argument changes this behaviour adding
the same layer repeatedly for each group as needed for constructing
animated plots with functions from package 'gganimate'.
Function wl_guide()
is a conveneince wrapper on
stat_wl_strip()
that also adds the required
scale_fill_identity()
.
As colours are returned as RGB colour definitions, depending on the
geometry used the use of scale_fill_identity
and/or scale_colour_identity
will be necessary for
the correct colours to be displayed in the plot.
Note
As only one colour scale can exist within a "gg"
object, using
this scale prevents the mapping to the colour aesthetic of
factors in data
to create a grouping.
Computed variables
- x
(w.low + wl.high) / 2
- wl.low
boundary of waveband
- wl.high
boundary of waveband
- wl.color
color corresponding to wavelength
- wb.color
color corresponding to waveband
- wb.name
label of w.band
Default aesthetics
Set by the statistic and available to geoms.
- x
..x..
- label
as.character(..wb.f..)
- xmin
..wl.low..
- xmax
..wl.high..
- fill
..wb.color..
Required aesthetics
Required by the statistic and need to be set with aes()
.
- x
numeric, wavelength in nanometres
See also
color_of
and
fast_color_of_wl
, which are used in the
implementation.
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_relative()
,
stat_wb_sirrad()
,
stat_wb_total()
,
stat_wl_summary()
Examples
# ggplot() methods for spectral objects set a default mapping for x and y.
ggplot(sun.spct) +
geom_line() +
stat_wl_strip(ymax = -0.02, ymin = -0.04) +
scale_fill_identity()
# on some graphic devices the output may show spurious vertical lines
ggplot(sun.spct) +
wl_guide(alpha = 0.33, color = NA) +
geom_line()