R studio добавить geom_abline с указанным перехватом - PullRequest
0 голосов
/ 04 февраля 2020

Я хочу иметь линию, которая пересекает график под углом 45 градусов, независимо от того, какова шкала х и у. В этом примере точка пересечения для аблины должна быть около x = -3 и y = -0.5.

Ниже нескольких строк кода:

x <- seq(1,10,1)
y <- sample(1:100, 10, replace=T)
df <- data.frame(x,y)

ggplot(df, aes(x=x, y=y)) +
  geom_point() +
  geom_abline(slope = 45) +
  scale_y_continuous(breaks = scales::pretty_breaks(n = 10), limits = c(-10,10)) +
  scale_x_continuous(breaks = scales::pretty_breaks(n = 10), limits = c(-2,10))

1 Ответ

2 голосов
/ 04 февраля 2020

Вы бы просто добавили

ggplot2::annotation_custom(grid::linesGrob())

на свой участок.

Так что вы можете сделать это:

x <- rnorm(100)
y <- rnorm(100)
df <- data.frame(x,y)

ggplot(df, aes(x=x, y=y)) +
  geom_point() +
  ggplot2::annotation_custom(grid::linesGrob())

enter image description here

или это

ggplot(df, aes(x=x)) + 
  geom_histogram() + 
  ggplot2::annotation_custom(grid::linesGrob())

enter image description here

Если вы хотите изменить внешний вид линии, вам нужно изменить гроб:

ggplot(df, aes(x=x, y=y)) +
  geom_point() +
  ggplot2::annotation_custom(grid::linesGrob(gp = grid::gpar(col = "red", lty = 2)))

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...