Как добавить несколько пользовательских вертикальных линий к отдельным фасетам в R? - PullRequest
0 голосов
/ 05 августа 2020

Я видел этот вопрос ранее, но, казалось бы, простое решение у меня не работает. Я пытаюсь добавить горизонтальные линии, указывающие дату обработки на моем фасетном ggplot, но все равно получаю сообщение об ошибке.

ggplot code:

p <- ggplot(mastersumm, aes(x = date, y = count, group = type)) +
  geom_point(size = 1) +
  geom_line(aes(linetype = type)) +
  geom_errorbar(aes(ymin = count-se, ymax = count+se), width=.2) +
  facet_grid(mastersumm$treatment, scales = "fixed", labeller = labeller(type = long_types, treatment = long_types)) +
  theme(panel.background = element_rect(fill='white', colour='black'), legend.position = "top") +
  scale_fill_grey()

, что дает:

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

Я пробовал создать настраиваемый фрейм данных для добавления настраиваемых строк. Я включил значение NA для элемента управления, так как он не должен получать вертикальную линию. Я включил множитель both дважды, чтобы получить две вертикальные линии:

treatment <- as.factor(c("control", "early", "late", "both", "both"))
date <- c("", "2013-05-23", "2013-06-04", "2013-05-23", "2013-06-04")
date <- as.Date(date, format = "%Y-%m-%d")
vline.df <- data.frame(treatment, date)

, что дает:

> vline.df
  treatment       date
1   control       <NA>
2     early 2013-05-23
3      late 2013-06-04
4      both 2013-05-23
5      both 2013-06-04

treatment и date одинаковы class, как в принимающем ggplot (коэффициент, дата, соответственно).

Наконец, я пробую следующий ввод:

p + geom_vline(data = vline.df, aes(xintercept = date))

только для получения следующей ошибки:

Ошибка в $<-.data.frame (*tmp*, «ПАНЕЛЬ», значение = c (1L, 2L, 3L, 4L,: замена имеет 40 строк, данные имеют 5

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