Разместить весь текст в области сюжета - PullRequest
0 голосов
/ 04 мая 2020

Я хочу создать график с текстом, но кажется, что ggplot игнорирует текст при определении пределов x и y (он использует только центральную точку). Поэтому, если текст слишком длинный, он не полностью виден.

df <- tibble(x = 1:5, y = 1:5)
ggplot(df, aes(x, y, label = paste(rep("long text", 3), collapse = " "))) +
  geom_point() + geom_text(nudge_y = 0.2)

enter image description here

В этом случае можно добавить слой expand_limits(x = c(0.4, 5.6)), но это не так не работает для любого другого случая. Я хотел бы иметь что-то, что работает для любых значений х и у и любой длины текста.

1 Ответ

0 голосов
/ 04 мая 2020

Для этого вы можете использовать ggrepel:

library(ggrepel)

ggplot(df, aes(x, y, label = paste(rep("long text", 3), collapse = " "))) +
  geom_point() + ggrepel::geom_text_repel(nudge_y = 0.2, segment.alpha = 0)

enter image description here

...