stat_peaks
finds at which x positions local y maxima are located and
stat_valleys
finds at which x positions local y minima are located.
Both stats return x and y numeric values for peaks or valleys and formatted
character labels. The formatting is determined by a format string suitable
for sprintf()
.
stat_peaks(mapping = NULL, data = NULL, geom = "point", span = 5,
ignore_threshold = 0, strict = FALSE, label.fmt = "%.4g",
x.label.fmt = NULL, y.label.fmt = label.fmt, position = "identity",
na.rm = FALSE, show.legend = FALSE, inherit.aes = TRUE, ...)stat_valleys(mapping = NULL, data = NULL, geom = "point", span = 5,
ignore_threshold = 0, strict = FALSE, label.fmt = "%.4g",
x.label.fmt = NULL, y.label.fmt = label.fmt, position = "identity",
na.rm = FALSE, show.legend = FALSE, inherit.aes = TRUE, ...)
The aesthetic mapping, usually constructed with
aes
or aes_string
. Only needs
to be set
at the layer level if you are overriding the plot defaults.
A layer specific dataset - only needed if you want to override the plot defaults.
The geometric object to use display the data
a peak is defined as an element in a sequence which is greater
than all other elements within a window of width span centered at that
element. The default value is 5, meaning that a peak is bigger than two
consecutive neighbors on each side. A NULL
value for span
is taken as a span covering the whole of the data range.
numeric value between 0.0 and 1.0 indicating the size threshold below which peaks will be ignored.
logical flag: if TRUE, an element must be strictly greater than all other values in its window to be considered a peak. Default: FALSE.
character string giving a format definition for converting
values into character strings by means of function sprintf
.
character string giving a format definition for converting
$y$-values into character strings by means of function sprintf
.
The position adjustment to use for overlapping points on this layer
a logical value indicating whether NA values should be stripped before the computation proceeds.
logical. Should this layer be included in the legends?
NA
, the default, includes if any aesthetics are mapped.
FALSE
never includes, and TRUE
always includes.
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
.
x-value at the peak (or valley) as numeric
y-value at the peak (or valley) as numeric
x-value at the peak (or valley) as character
y-value at the peak (or valley) as character
These stats use geom_point
by default as it is the geom most
likely to work well in almost any situation without need of tweaking. The
default aesthetics set by these stats allow their direct use with
geom_text
, geom_label
, geom_line
, geom_rug
,
geom_hline
and geom_vline
. The formatting of the labels
returned can be controlled by the user.
Other peaks and valleys functions: find_peaks
# NOT RUN {
library(ggplot2)
lynx.df <- data.frame(year = as.numeric(time(lynx)), lynx = as.matrix(lynx))
ggplot(lynx.df, aes(year, lynx)) + geom_line() +
stat_peaks(colour = "red") +
stat_valleys(colour = "blue")
ggplot(lynx.df, aes(year, lynx)) + geom_line() +
stat_peaks(colour = "red") +
stat_peaks(colour = "red", geom = "rug")
# }
Run the code above in your browser using DataLab