Learn R Programming

ggpp (version 0.5.8-1)

position_nudge_keep: Nudge points a fixed distance

Description

The function position_nudge_keep() has an additional parameters compared to position_nudge, obey_grouping and by default the same behaviour when the values passed as arguments to x and y have length one.

Usage

position_nudge_keep(
  x = 0,
  y = 0,
  obey_grouping = NULL,
  kept.origin = c("original", "none")
)

Value

A "Position" object.

Arguments

x, y

Amount of vertical and horizontal distance to move. A numeric vector of length 1, or of the same length as rows there are in data, with nudge values in data rows order.

obey_grouping

A logical flag indicating whether to obey or not groupings of the observations. By default, grouping is obeyed when both of the variables mapped to x and y are continuous numeric and ignored otherwise.

kept.origin

One of "original" or "none".

Details

When x or y have length > 1, they are treated specially. If the lengths is the same as there are rows in data, the nudges are applied in the order of the rows in data. When they are shorter, they are recycled and applied to the data values after ordering. This makes it possible to have alternating mudging right and left or up and down. If obey_grouping = TRUE is passed in the call, the alternation will take place within groups.

As other position functions from package 'ggpp', position_nudge_keep() by default renames and keeps the original positions of the observations in data making it possible to draw connecting segments or conencting arrows.

See Also

Other position adjustments: position_dodgenudge(), position_jitternudge(), position_nudge_center(), position_nudge_line(), position_nudge_to(), position_stacknudge()

Examples

Run this code
df <- data.frame(
  x = c(1,3,2,5,4,2.5),
  y = c("abc","cd","d","c","bcd","a")
)

# Plain nudging, same as with ggplot2::position_nudge()

ggplot(df, aes(x, y, label = y)) +
  geom_point() +
  geom_text_s(hjust = "left", vjust = "bottom",
              position = position_nudge_keep(x = 0.2, y = 0.2))

# alternating nudging
ggplot(df, aes(x, y, label = y)) +
  geom_point() +
  geom_text_s(position = position_nudge_keep(x = c(0.2, -0.2)))

# direct nudging
ggplot(df, aes(x, y, label = y)) +
  geom_point() +
  geom_text_s(position = position_nudge_keep(x = rep_len(c(0.2, -0.2), 6)))

Run the code above in your browser using DataLab