Добавить строку y=0 на некоторых графиках facet_grid ggplot2

У меня большой сюжет, использующий facet_grid(), Я хочу добавить вертикальную линию, чтобы указать y=0, но только на некоторых участках.

Воспроизводимый пример -

df <- data.frame(x = 1:100, y = rnorm(100,sd=0.5), type = rep(c('A','B'), 50))
ggplot(df) + facet_grid(type~.) +
     geom_point(data = df[df$type == 'A',], mapping = aes(x=x, y=y)) +
     geom_rect(data = df[df$type == 'B',], mapping=aes(xmin=x,ymin=0,xmax=(x+2),ymax=y)) +
     theme(panel.background=element_rect(fill="white")) 

Я хочу, чтобы строка только в верхнем ptot, например.

1 ответ

Решение

Просто создайте другой объект данных для hline geom и обязательно включите соответствующую граненую переменную.

df <- data.frame(x = 1:100, y = rnorm(100,sd=0.5), type = rep(c('A','B'), 50))
ggplot(df) + facet_grid(type~.) +
     geom_point(data = df[df$type == 'A',], mapping = aes(x=x, y=y)) +
     geom_rect(data = df[df$type == 'B',], mapping=aes(xmin=x,ymin=0,xmax=(x+2),ymax=y)) +
     geom_hline(data = data.frame(type="A", y=0), mapping=aes(yintercept=y)) +
     theme(panel.background=element_rect(fill="white")) 

введите описание изображения здесь

Другие вопросы по тегам