Nothing
context("positions")
test_that("stacknudge", {
df <- data.frame(x1 = c(1, 2, 1, 3, -1),
x2 = c("a", "a", "b", "b", "b"),
grp = c("some long name", "other name", "some name",
"another name", "some long name"))
p <-
ggplot(data = df, aes(x1, x2, group = grp)) +
geom_col(aes(fill = grp), width = 0.5) +
theme(legend.position = "none")
vdiffr::expect_doppelganger("stack_nudge1",
p + geom_text(aes(label = grp),
position = position_stacknudge(vjust = 0.5, y = 0.3))
)
vdiffr::expect_doppelganger("stack_nudge2",
p + geom_text_s(aes(label = grp),
vjust = 0,
position = position_stacknudge(vjust = 0.5, y = 0.3))
)
vdiffr::expect_doppelganger("stack_nudge3",
p + geom_text(aes(label = grp),
hjust = 0,
position = position_stacknudge(vjust = 0, x = 0.1))
)
vdiffr::expect_doppelganger("stack_nudge4",
p + geom_text(aes(label = grp),
hjust = 0, angle = 90,
position = position_stacknudge(vjust = 0, x = 0.1, y = -0.21))
)
vdiffr::expect_doppelganger("stack_nudge5",
p + geom_text_s(aes(label = grp),
vjust = 0.5,
box.padding = 0.99,
position = position_stacknudge(vjust = 0.5, y = c(0.3, -0.3)))
)
vdiffr::expect_doppelganger("stack_nudge6",
p + geom_text_s(aes(label = grp),
vjust = 0.5,
box.padding = 0.99,
position = position_stacknudge(vjust = 0.5,
y = c(rep(0.3, 2), rep(-0.3, 3))))
)
})
test_that("fillnudge", {
df <- data.frame(x1 = c(1, 2, 1, 3, -1),
x2 = c("a", "a", "b", "b", "b"),
grp = c("some long name", "other name", "some name",
"another name", "some long name"))
p <-
ggplot(data = df, aes(x1, x2, group = grp)) +
geom_col(aes(fill = grp), width = 0.5, position = "fill") +
theme(legend.position = "none")
vdiffr::expect_doppelganger("fill_nudge1",
p + geom_text(aes(label = grp),
position = position_fillnudge(vjust = 0.5, y = 0.3))
)
vdiffr::expect_doppelganger("fill_nudge2",
p + geom_text_s(aes(label = grp),
vjust = 0,
position = position_fillnudge(vjust = 0.5, y = 0.3))
)
vdiffr::expect_doppelganger("fill_nudge3",
p + geom_text(aes(label = grp),
angle = 90,
position = position_fillnudge(vjust = 0, x = 0.1))
)
vdiffr::expect_doppelganger("fill_nudge4",
p + geom_text(aes(label = grp),
hjust = 0, angle = 90,
position = position_fillnudge(vjust = 0, x = 0.1, y = -0.21))
)
vdiffr::expect_doppelganger("fill_nudge5",
p + geom_text_s(aes(label = grp),
vjust = 0.5,
box.padding = 0.99,
position = position_fillnudge(vjust = 0.5, y = c(0.3, -0.3)))
)
vdiffr::expect_doppelganger("fill_nudge6",
p + geom_text_s(aes(label = grp),
vjust = 0.5,
box.padding = 0.99,
position = position_fillnudge(vjust = 0.5,
y = c(rep(0.3, 2), rep(-0.3, 3))))
)
})
test_that("dodgenudge", {
df <- data.frame(x1 = c(1, 2, 1, 3, -1),
x2 = c("a", "a", "b", "b", "b"),
grp = c("some long name", "other name", "some name",
"another name", "some long name"))
p <-
ggplot(data = df, aes(x2, x1, group = grp)) +
geom_col(aes(fill = grp),
width=0.5,
position = position_dodge(width = 0.5)) +
theme(legend.position = "none")
vdiffr::expect_doppelganger("dodge_nudge1",
p + geom_text(aes(label = grp),
position = position_dodgenudge(width = 0.5, y = 0.1))
)
vdiffr::expect_doppelganger("dodge_nudge2",
p + geom_text(aes(label = grp),
position = position_dodgenudge(width = 0.5, y = 0.1,
direction = "split"))
)
vdiffr::expect_doppelganger("dodge_nudge3",
p + geom_text_s(aes(label = grp),
hjust = 0,
position = position_dodgenudge(width = 0.5, y = 0.2,
direction = "split"))
)
vdiffr::expect_doppelganger("dodge_nudge4",
p + geom_text(aes(label = grp),
hjust = "center",
position = position_dodgenudge(width = 0.5, y = -0.075,
direction = "split"))
)
# assumes the default order of factor levels
vdiffr::expect_doppelganger("dodge_nudge5",
p + geom_text(aes(label = grp),
position = position_dodgenudge(width = 0.5,
y = c(rep(0.1, 4), -0.1)))
)
vdiffr::expect_doppelganger("dodge_nudge6",
p + geom_text(aes(label = grp),
position = position_dodgenudge(width = 0.5,
y = 0.1))
)
})
test_that("nudge_keep", {
df <- data.frame(x1 = c(1, 2, 1, 3, -1),
x2 = c("a", "b", "c", "d", "e"),
grp = c("some long name", "other name", "some name",
"another name", "some long name"))
p <-
ggplot(data = df, aes(x2, x1, group = grp)) +
geom_col(aes(fill = grp)) +
theme(legend.position = "none")
vdiffr::expect_doppelganger("nudge_keep1",
p + geom_text_s(aes(label = grp),
vjust = 0, hjust = 0.5,
position = position_nudge_keep(y = 0.12))
)
vdiffr::expect_doppelganger("nudge_keep2",
p + geom_text_s(aes(label = grp),
vjust = 0, hjust = "left",
position = position_nudge_keep(y = 0.12))
)
vdiffr::expect_doppelganger("nudge_keep3",
p + geom_text_s(aes(label = grp),
vjust = 0, hjust = "inward",
position = position_nudge_keep(y = 0.12))
)
vdiffr::expect_doppelganger("nudge_keep4",
p + geom_text_s(aes(label = grp),
position = position_nudge_keep(y = 0.12))
)
vdiffr::expect_doppelganger("nudge_keep5",
p + geom_text_s(aes(label = grp),
position = position_nudge_keep(y = c(rep(0.12, 4), -0.12)))
)
vdiffr::expect_doppelganger("nudge_keep6",
p + geom_text_s(aes(label = grp),
position = position_nudge_keep(y = c(rep(0.12, 4), -0.12),
obey_grouping = TRUE))
)
vdiffr::expect_doppelganger("nudge_keep7",
p + geom_text_s(aes(label = grp),
position = position_nudge_keep(y = c(0.12, -0.12)))
)
})
test_that("nudge_center", {
df <- data.frame(
x = c(1,3,2,5,4,2.5),
y = c("abc","cd","d","c","bcd","a")
)
vdiffr::expect_doppelganger("nudge_center0",
ggplot(df, aes(x, y, label = y)) +
geom_point() +
geom_text(
position = position_nudge_center(center_x = 3, center_y = 4,
x = 0.1, y = 0.2)
)
)
vdiffr::expect_doppelganger("nudge_center1",
ggplot(df, aes(x, y, label = y)) +
geom_point() +
geom_text(hjust = 0, vjust = 0,
position = position_nudge_center(x = 0.05,
y = 0.07)
)
)
vdiffr::expect_doppelganger("nudge_center1a",
ggplot(df, aes(x, y, label = y)) +
geom_point() +
geom_text(hjust = 0, vjust = 0,
position = position_nudge_center(x = 0.05,
y = 0.07,
direction = "none")
)
)
vdiffr::expect_doppelganger("nudge_center1b",
ggplot(df, aes(x, y, label = y)) +
geom_point() +
geom_text(hjust = 0, vjust = 0,
position = position_nudge_center(x = c(0.05, -0.05),
y = 0.07)
)
)
vdiffr::expect_doppelganger("nudge_center1c",
ggplot(df, aes(x, y, label = y)) +
geom_point() +
geom_text(hjust = 0, vjust = 0,
position = position_nudge_center(x = 0.05,
y = c(0.1, -0.1))
)
)
vdiffr::expect_doppelganger("nudge_center2",
ggplot(df, aes(x, y)) +
geom_point() +
geom_text(aes(label = y),
hjust = "outward", vjust = "outward",
position = position_nudge_center(x = 0.05,
y = 0.07,
direction = "split"))
)
vdiffr::expect_doppelganger("nudge_center3",
ggplot(df, aes(x, y)) +
geom_point() +
geom_text(aes(label = y),
hjust = "outward", vjust = "outward",
position = position_nudge_center(x = 0.05,
y = 0.07,
direction = "radial"))
)
vdiffr::expect_doppelganger("nudge_center4",
ggplot(df, aes(x, y)) +
geom_point() +
geom_text(aes(label = y),
vjust = "outward", hjust = "outward",
position = position_nudge_center(x = 0.06,
y = 0.08,
center_y = 2,
center_x = 1.5,
direction = "split"))
)
vdiffr::expect_doppelganger("nudge_center5",
ggplot(df, aes(x, y)) +
geom_point() +
geom_text(aes(label = y),
vjust = "outward", hjust = "outward",
position = position_nudge_center(x = 0.06,
y = 0.08,
center_y = 2,
center_x = 1.5,
direction = "radial"))
)
vdiffr::expect_doppelganger("nudge_center6",
ggplot(df, aes(x, y)) +
geom_point() +
geom_text(aes(label = y),
vjust = "outward", hjust = "outward",
position = position_nudge_center(x = 0.06,
y = 0.08,
center_y = 2))
)
vdiffr::expect_doppelganger("nudge_center7",
ggplot(df, aes(x, y)) +
geom_point() +
geom_text(aes(label = y),
vjust = "outward", hjust = "outward",
position = position_nudge_center(x = 0.06,
y = 0.08,
center_x = 1.5))
)
})
test_that("nudge_line", {
set.seed(16532)
df <- data.frame(
x = -10:10,
y = (-10:10)^2,
yy = (-10:10)^2 + rnorm(21, 0, 4),
yyy = (-10:10) + rnorm(21, 0, 4),
l = letters[1:21]
)
expect_error(ggplot(df, aes(x, y, label = l)) +
geom_text(position = position_nudge_line(kept.origin = "")))
expect_error(ggplot(df, aes(x, y, label = l)) +
geom_text(position = position_nudge_line(kept.origin = "zz")))
{ # output under linux does not match snapshots created under Windows
skip_on_os(c("mac", "linux", "solaris"))
vdiffr::expect_doppelganger("nudge_line1",
ggplot(df, aes(x, y, label = l)) +
geom_line() +
geom_point() +
geom_text(position = position_nudge_line())
)
vdiffr::expect_doppelganger("nudge_line2",
ggplot(df, aes(x, y, label = l)) +
geom_line() +
geom_point() +
geom_text(position = position_nudge_line(xy_relative = -0.03))
)
}
vdiffr::expect_doppelganger("nudge_line3",
ggplot(df, aes(x, x * 2 + 5, label = l)) +
geom_abline(intercept = 5, slope = 2) +
geom_point() +
geom_text(position = position_nudge_line(abline = c(5, 2)))
)
vdiffr::expect_doppelganger("nudge_line3a",
ggplot(df, aes(x, x * 2 + 5, label = l)) +
geom_abline(intercept = 5, slope = 2) +
geom_point() +
geom_text(position = position_nudge_line(abline = c(5, 2),
x = c(-0.5, 0.5),
y = c(-0.5, 0.5)))
)
vdiffr::expect_doppelganger("nudge_line4",
ggplot(subset(df, x >= 0), aes(x, yyy)) +
geom_point() +
geom_text(aes(label = l),
position = position_nudge_line(direction = "split"))
)
vdiffr::expect_doppelganger("nudge_line5",
ggplot(subset(df, x >= 0), aes(y, yy)) +
stat_smooth(method = "lm", formula = y ~ x) +
geom_point() +
geom_text(aes(label = l),
position = position_nudge_line(method = "lm",
direction = "split"))
)
vdiffr::expect_doppelganger("nudge_line6",
ggplot(subset(df, x >= 0), aes(y, yy)) +
stat_smooth(method = "lm", formula = y ~ x) +
geom_point() +
geom_text(aes(label = l),
position = position_nudge_line(method = "linear",
direction = "split"))
)
vdiffr::expect_doppelganger("nudge_line7",
ggplot(subset(df, x >= 0), aes(y, yy)) +
stat_smooth(method = "lm", formula = y ~ x) +
geom_point() +
geom_text(aes(label = l),
position = position_nudge_line(line_nudge = 1.5))
)
})
test_that("nudge_to", {
df <- data.frame(
x = c(1,3,2,5,4,2.5),
y = c(2, 1, 2.5, 1.8, 2.8, 1.5),
label = c("abc","cd","d","c","bcd","a")
)
# errors ------------------------------------------------------------------
expect_error(
ggplot(df, aes(x, y, label = label)) +
geom_text_s(position =
position_nudge_to(y = 3,
kept.origin = "wrong value"))
)
expect_error(
ggplot(df, aes(x, y, label = label)) +
geom_text_s(position =
position_nudge_to(y = 3,
x.action = "wrong value"))
)
expect_error(
ggplot(df, aes(x, y, label = label)) +
geom_text_s(position =
position_nudge_to(y = 3,
y.action = "wrong value"))
)
expect_error(
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position =
position_nudge_to(x = NA_real_,
y.action = "spread"))
)
expect_error(
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position =
position_nudge_to(x = NA,
y.action = "spread"))
)
expect_no_error(
ggplot(df, aes(x, y, label = label)) +
geom_text_s(position =
position_nudge_to(y = 3,
kept.origin = "none"))
)
expect_no_error(
ggplot(df, aes(x, y, label = label)) +
geom_text_s(position =
position_nudge_to(y = 3,
x.action = "none"))
)
expect_no_error(
ggplot(df, aes(x, y, label = label)) +
geom_text_s(position =
position_nudge_to(y = 3,
y.action = "none"))
)
expect_no_error(
ggplot(df, aes(x, y, label = label)) +
geom_text_s(position =
position_nudge_to(y = 3,
kept.origin = "original"))
)
expect_no_error(
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position =
position_nudge_to(y = 3,
x.action = "spread"))
)
expect_no_error(
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text(position =
position_nudge_to(x = 4,
y.action = "spread"))
)
expect_no_error(
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position =
position_nudge_to(x = 0,
y.action = "spread"))
)
# warnings ----------------------------------------------------------------
## works outside testthat, but warning seems to be muted by testthat
# expect_warning(
# ggplot(df, aes(x, y, label = label)) +
# geom_point() +
# geom_text_s(position =
# position_nudge_to(x = rep(0, 7),
# y.action = "spread"))
# )
expect_no_warning(
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position =
position_nudge_to(x = rep(0, 6),
y.action = "spread"))
)
expect_no_warning(
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position =
position_nudge_to(x = NULL,
y.action = "spread"))
)
expect_no_warning(
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position =
position_nudge_to(x = numeric(0),
y.action = "spread"))
)
# x.action = none, y.action = none -----------------------------------------
vdiffr::expect_doppelganger("nudge_to1",
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position = position_nudge_to(y = 3),
vjust = 0)
)
vdiffr::expect_doppelganger("nudge_to1a",
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position = position_nudge_to(y = 3 + (1:6) / 6),
vjust = 0)
)
vdiffr::expect_doppelganger("nudge_to2",
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position = position_nudge_to(x = 6),
hjust = 0)
)
# x.action = spread, y.action = none --------------------------------------
vdiffr::expect_doppelganger("nudge_to_spread_x1",
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position = position_nudge_to(x.action = "spread", y = 3),
hjust = 0)
)
vdiffr::expect_doppelganger("nudge_to_expand_x1",
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position = position_nudge_to(x.action = "spread",
y = 3,
x.expansion = 0.1),
hjust = 0)
)
vdiffr::expect_doppelganger("nudge_to_contract_x1",
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position = position_nudge_to(x.action = "spread",
y = 3,
x.expansion = -0.1),
hjust = 0)
)
vdiffr::expect_doppelganger("nudge_to_contract_expand_x1",
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position = position_nudge_to(x.action = "spread",
y = 3,
x.expansion = c(-0.1, 0.1)),
hjust = 0)
)
vdiffr::expect_doppelganger("nudge_to_spread_x2",
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position = position_nudge_to(x.action = "spread",
x = c(2, 4), y = 3),
hjust = 0)
)
vdiffr::expect_doppelganger("nudge_to_expand_x2",
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position = position_nudge_to(x.action = "spread",
x = c(2, 4), y = 3,
x.expansion = 0.1),
hjust = 0)
)
# x.action = none, y.action = spread --------------------------------------
vdiffr::expect_doppelganger("nudge_to_spread_y1",
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position = position_nudge_to(x = 6, y.action = "spread"),
hjust = 0)
)
vdiffr::expect_doppelganger("nudge_to_expand_y1",
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position = position_nudge_to(x = 6,
y.action = "spread",
y.expansion = 0.1),
hjust = 0)
)
vdiffr::expect_doppelganger("nudge_to_contract_y1",
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position = position_nudge_to(x = 6,
y.action = "spread",
y.expansion = -0.1),
hjust = 0)
)
vdiffr::expect_doppelganger("nudge_to_contract_expand_y1",
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position = position_nudge_to(x = 6,
y.action = "spread",
y.expansion = c(-0.1, 0.1)),
hjust = 0)
)
vdiffr::expect_doppelganger("nudge_to_spread_y2",
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position = position_nudge_to(x = 6, y = c(1, 3),
y.action = "spread"),
hjust = 0)
)
vdiffr::expect_doppelganger("nudge_to_expand_y2",
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position = position_nudge_to(x = 6, y = c(1, 3),
y.action = "spread",
y.expansion = 0.1),
hjust = 0)
)
# x.action = spread, y.action = spread ------------------------------------
vdiffr::expect_doppelganger("nudge_to_spread_x1y1",
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position = position_nudge_to(x.action = "spread",
y.action = "spread"))
)
vdiffr::expect_doppelganger("nudge_to_expand_x1y1",
ggplot(df, aes(x, y, label = label)) +
geom_point() +
geom_text_s(position = position_nudge_to(x.action = "spread",
y.action = "spread",
x.expansion = 0.05,
y.expansion = 0.05))
)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.