Проблемы с отображением точек данных на каждом кадре объекта facet_wrap / facet_grid - PullRequest
1 голос
/ 27 июня 2019

Я пытаюсь создать график либо с помощью facet_wrap, либо facet_grid (в настоящее время нет предпочтений), но отображаю выбор точек данных на каждом кадре в объекте facet_wrap / facet_grid.

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

Это на Rstudio версии 1.1.453.

Я нашел этот пример кода:

ggplot(mpg, aes(displ, hwy)) +
  geom_point(data = transform(mpg, class = NULL), colour = "grey85") +
  geom_point() +
  facet_wrap(~class)

И в значительной степени скопировал его для моего кода ниже. Приведенный выше код работает нормально, но по какой-либо причине в моей реализации он возвращает сообщение об ошибке. Обратите внимание, что я попытался установить обе функции geom на geom_point, но безуспешно.

ggplot(data = Total, aes(Total$Time, Total$Killing)) + 
  geom_jitter(data = transform(Total, Run = NULL), colour = "grey85") +
  geom_point() + 
  facet_wrap(~Run)

Ошибка: эстетика должна иметь длину 1 или совпадать с данными (2700): x, y

Это сообщение об ошибке, с которым я столкнулся при попытке запустить этот код.

В конечном итоге моя цель - запустить приведенный ниже код, но я немного упростил его для целей приведенного выше вопроса.

ggplot(data = filter(Total, Cell_Line != "stDev"), aes(x= Time, y=Killing)) + 

  geom_line(data = filter(select(Total, -Run), Cell_Line == "Wild_Type"), aes(x = Time, y = filter(Total, Cell_Line == "Wild_Type")[,3])) +

  geom_errorbar(aes(x = filter(Total, Cell_Line == "Wild_Type")[,2], ymax = filter(Total, Cell_Line == "Wild_Type")[,3] + filter(Total, Cell_Line == "stDev")[,3], ymin = filter(Total, Cell_Line == "Wild_Type")[,3] - filter(Total, Cell_Line == "stDev")[,3])) +

  geom_point() + 

  facet_wrap(~Run)

А вот результат dput (Total), обрезанный до первых 30 строк:

structure(list(Cell_Line = structure(c(5L, 12L, 13L, 1L, 2L, 
3L, 4L, 6L, 7L, 8L, 9L, 10L, 11L, 15L, 14L, 5L, 12L, 13L, 1L, 
2L, 3L, 4L, 6L, 7L, 8L, 9L, 10L, 11L, 15L, 14L), .Label = c("17", 
"19", "20", "29", "3", "33", "38", "47", "49", "53", "55", "7", 
"8", "stDev", "Wild_Type"), class = "factor"), Time = structure(c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("00", 
"02", "04", "08", "12", "18", "24", "32", "40", "48", "56", "64", 
"72", "80"), class = "factor"), Killing = c(0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0704388, 0.2881066, -0.0132908, 
0.04700991, 0.03049371, -0.02243472, 0.1513817, 0.129636, 0.09328508, 
0.05876777, 0.1063291, 0.0357473, 0.1974026, 0.07732854, 0.07383331
)), row.names = c(NA, 30L), class = "data.frame")

1 Ответ

0 голосов
/ 28 июня 2019

Ваш звонок на transform имеет ошибку: у вас нет столбца с именем Run.

set.seed(1)
Total$Run <- sample(1:100, 30)

# this is your own code:
ggplot(data = Total, aes(Total$Time, Total$Killing)) + 
  geom_jitter(data = transform(Total, Run = NULL), colour = "grey85") +
  geom_point() + 
  facet_wrap(~Run)

Который производит этот участок: enter image description here

...