Функция `Rug ()` в `ggplot2` - PullRequest
       10

Функция `Rug ()` в `ggplot2`

1 голос
/ 20 марта 2020

Этот вопрос как-то связан с моим предыдущим вопросом, но с другой целью. У меня есть следующий код

x<-c(seq(1,20,1))
y<-runif(20)
rugp<-c(runif(50,0,20))
plot(x,y,type="b")
rug(rugp,col="red")

, который производит следующий график

enter image description here

Я хотел бы сделать то же самое, но с ggplot. Есть ли эквивалентная функция rug() в ggplot2? Я попробовал опцию geom_rug(), но она не работает, так как не позволяет мне добавлять свои собственные очки к ковру. Спасибо!

Ответы [ 2 ]

3 голосов
/ 20 марта 2020

Как указывает @csgroen, geom_rug является эквивалентом функции rug.

Однако ваш вектор rug имеет длину, отличную от x и y, поэтому вам нужно указать передать несколько аргументов в aes, чтобы получить ту же фигуру, что и в base r plot:

df1 <- data.frame(x, y)
df_rug <- data.frame(rugp)

library(ggplot2)
ggplot(df1, aes(x = x, y = y))+
  geom_point()+
  geom_line()+
  geom_rug(data = df_rug, aes(x = rugp, y = Inf), color = "red", sides = "b")

enter image description here

Отвечает ли он на ваш вопрос?

2 голосов
/ 20 марта 2020

Я просто делаю несколько более простой функциональный ответ:

ggplot() +
    geom_line(aes(x,y)) +
    geom_rug(aes(x = rugp), color = "red")

Мне кажется, нет необходимости создавать стол для коврика.

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