Margin grobs can supplement a 2d display with annotations. Margin grobs such
as icons or symbols can highlight individual values along a margin. The
geometries geom_x_margin_grob()
and geom_y_margin_grob()
behave
similarly geom_vline()
and geom_hline()
and share their "double
personality" as both annotations and geometries.
Usage
geom_x_margin_grob(
mapping = NULL,
data = NULL,
stat = "identity",
position = "identity",
...,
xintercept,
sides = "b",
grob.shift = 0,
na.rm = FALSE,
show.legend = FALSE,
inherit.aes = FALSE
)
geom_y_margin_grob(
mapping = NULL,
data = NULL,
stat = "identity",
position = "identity",
...,
yintercept,
sides = "l",
grob.shift = 0,
na.rm = FALSE,
show.legend = FALSE,
inherit.aes = FALSE
)
Arguments
- mapping
The aesthetic mapping, usually constructed with
aes
. 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.
- stat
The statistical transformation to use on the data for this layer, as a string.
- position
Position adjustment, either as a string, or the result of a call to a position adjustment function.
- ...
other arguments passed on to
layer
. This can include aesthetics whose values you want to set, not map. Seelayer
for more details.- xintercept, yintercept
numeric Parameters that control the position of the marginal points. If these are set, data, mapping and show.legend are overridden.
- sides
A character string of length one that controls on which side of the plot the grob annotations appear on. It can be set to a string containing one of
"t"
,"r"
,"b"
or"l"
, for top, right, bottom, and left.- grob.shift
numeric value expressed in npc units for the shift of the marginal grob inwards from the edge of the plotting area.
- na.rm
If
FALSE
(the default), removes missing values with a warning. IfTRUE
silently removes missing values.- 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
.
Alignment
You can modify text alignment with the vjust
and
hjust
aesthetics. These can either be a number between 0
(right/bottom) and 1 (top/left) or a character ("left"
,
"middle"
, "right"
, "bottom"
, "center"
,
"top"
). In addition, you can use special alignments for
justification including "position"
, "inward"
and
"outward"
. Inward always aligns text towards the center of the
plotting area, and outward aligns it away from the center of the plotting
area. If tagged with _mean
or _median
(e.g.,
"outward_mean"
) the mean or median of the data in the panel along
the corresponding axis is used as center. If the characters following the
underscore represent a number (e.g., "outward_10.5"
) the reference
point will be this value in data units. Position justification is computed
based on the direction of the displacement of the position of the label so
that each individual text or label is justified outwards from its original
position. The default justification is "position"
.
If no position displacement is applied, or a position function defined in
'ggplot2' is used, these geometries behave similarly to the corresponding
ones from package 'ggplot2' with a default justification of 0.5
and
no segment drawn.
Position functions
Many layer functions from package 'ggpp' are
designed to work seamlessly with position functions that keep, rather than
discard, the original x
and y
positions in data
when
computing a new displaced position. See position_nudge_keep
,
position_dodge_keep
, position_jitter_keep
,
position_nudge_center
, position_nudge_line
,
position_nudge_to
, position_dodgenudge
,
position_jitternudge
, and position_stacknudge
for examples and details of their use.
See also
grid-package
, geom_rug
,
and other documentation of package 'ggplot2'.
Other Geometries for marginal annotations in ggplots:
geom_x_margin_arrow()
,
geom_x_margin_point()