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(x = 0.2, y = 0.2))
ggplot(df, aes(x, y, label = y)) +
geom_point() +
geom_text_s(add.segments = FALSE,
position = position_nudge_center(x = 0.2, y = 0.2)
)
# "split" nudging
ggplot(df, aes(x, y)) +
geom_point() +
geom_text_s(aes(label = y),
add.segments = FALSE,
position = position_nudge_center(x = 0.2,
y = 0.2,
direction = "split"))
ggplot(df, aes(x, y)) +
geom_point() +
geom_text_s(aes(label = y),
position = position_nudge_center(x = 0.4,
direction = "split"))
ggplot(df, aes(x, y)) +
geom_point() +
geom_text_s(aes(label = y),
position = position_nudge_center(y = 0.2,
direction = "split"))
ggplot(df, aes(x, y)) +
geom_point() +
geom_text_s(aes(label = y),
position = position_nudge_center(x = 0.2,
y = 0.3,
center_y = 2,
center_x = 1.5,
direction = "split"))
ggplot(df, aes(x, y)) +
geom_point() +
geom_text_s(aes(label = y),
position = position_nudge_center(x = 0.06,
y = 0.08,
center_y = 2))
ggplot(df, aes(x, y)) +
geom_point() +
geom_text_s(aes(label = y),
position = position_nudge_center(x = 0.1,
center_x = 2.51))
ggplot(df, aes(x, y)) +
geom_point() +
geom_text_s(aes(label = y),
position = position_nudge_center(x = 0.06,
y = 0.08,
center_x = median,
center_y = median,
direction = "split"))
# "Radial" nudging
ggplot(df, aes(x, y)) +
geom_point() +
geom_text_s(aes(label = y),
position = position_nudge_center(x = 0.1,
y = 0.2,
direction = "radial"))
ggplot(df, aes(x, y)) +
geom_point() +
geom_text_s(aes(label = y),
position = position_nudge_center(x = -0.1,
y = -0.1,
direction = "radial"))
df <- data.frame(
x = -10:10,
z = (-10:10)^2,
y = letters[1:21],
group = rep(c("a", "b"), rep(c(11, 10)))
)
ggplot(df, aes(x, z)) +
geom_point() +
geom_line() +
geom_text_s(aes(label = y),
position = position_nudge_center(x = 0.9,
y = 2.7,
center_x = mean,
center_y = max))
ggplot(df, aes(x, z, color = group)) +
geom_point() +
geom_line(color = "black", linetype = "dotted") +
geom_text_s(aes(label = y),
position = position_nudge_center(x = -1.2,
y = -3,
center_x = 0,
center_y = "above_max"))
ggplot(df, aes(x, z, color = group)) +
geom_point() +
geom_line(color = "black", linetype = "dotted") +
geom_text(aes(label = y),
vjust = "inward", hjust = "inward",
position = position_nudge_center(x = -0.9,
y = -2.7,
center_x = mean,
center_y = max,
obey_grouping = FALSE))
Run the code above in your browser using DataLab