Много часов маниакального поиска в Google и перелистывания документации ggplot2 не приблизили меня, я надеялся, что кто-то может подтолкнуть меня в правильном направлении.
У меня есть данные подсчета ячеек для нескольких тысяч субъектов в data.frame со следующим макетом:
- 1 предмет на строку.
- 1 столбец для каждого типа ячеек (всего 5, каждый содержит процентное значение для этого типа ячеек, суммируя до 100%).
- 2 дополнительных столбца, один для указания, к какой группе (экспериментальная или контрольная) принадлежат субъекты, 1 для указания, к какому эксперименту они принадлежат (1, 2, 3, 4 и т. Д.)
Я хотел бы сгенерировать график дрожания ggplot2, процентное соотношение вдоль оси Y, категории типов ячеек вдоль оси X (всего 5) и дополнительно раскрасить точки данных на основе их группы (экспериментальная или контрольная). Было бы здорово, если бы я мог дополнительно раскрасить точки данных из разных экспериментов в оттенки цвета группы (т. Е. С помощью номера эксперимента определить градиент от светлого к темному - все точки эксперимента 1 были бы светлыми - либо красным, либо синим на основе к какой группе они принадлежали), но я не знаю, возможно ли это вообще.
Для начала: правильно ли выложены мои данные, чтобы попытаться создать этот график? Причина, по которой я спрашиваю, заключается в том, что я действительно чувствую, что я борюсь с ggplot2, пытаясь получить что-либо, отображаемое с помощью data.frame в его текущем макете (но родной boxplot (), кажется, работает нормально с очень небольшими изменениями ...)
Буду признателен за любую помощь или толчок в правильном направлении.
EDIT:
Это вывод dput(head(dat, 10))
.
structure(list(Neutrophils = c(38, 70.7, 62.1, 90.5, 65.8, 39.2,
89.4, 91.3, 55.4, 14.5), Lymphocytes = c(47.5, 17.1, 20.3, 2,
25, 37.1, 6.3, 1.6, 31.3, 61.5), Monocytes = c(12.4, 11.8, 14.6,
4.8, 7.3, 14.1, 3.7, 4.6, 8.4, 21.9), Eosinophils = c(1.4, 0.1,
2.5, 2.4, 1.4, 9.2, 0.1, 2.5, 4.6, 1.3), Basophils = c(0.8, 0.3,
0.5, 0.3, 0.5, 0.4, 0.5, 0, 0.3, 0.8), Group = c(1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L)), .Names = c("Neutrophils", "Lymphocytes",
"Monocytes", "Eosinophils", "Basophils", "Group"), row.names = c("B145",
"B196", "B212", "B246", "B250", "B286", "B343", "B355", "B369",
"B386"), class = "data.frame")