Я пытаюсь воспроизвести точечный график партий / случаев / обработок с линиями, пересекающими факторы в ggplot. Это что-то вроде этого графика из курса линейных моделей Дугласа Бейтса, который показывает 6 групп по оси y с непрерывным откликом по оси x со средним для каждой группы, соединенной линией:
На примере набора данных sleepstudy, связанного с пакетом lme4, я имею:
library(ggplot2)
p <- ggplot(sleepstudy, aes(x=Reaction, y=reorder(Subject, Reaction)))
p <- p + geom_point()
print(p)
Что дает базовую точечную диаграмму с объектами на оси y в порядке увеличения времени реакции.
Затем я создаю фрейм данных со средним временем реакции для каждого субъекта:
mean_rxn <- function(df) mean(df$Reaction, na.rm=T)
sleepsummary <- ddply(sleepstudy, .(Subject), mean_rxn)
Я могу построить среднее значение для каждого предмета:
p.points <- p + geom_point(data=sleepsummary, aes(x=V1, y=reorder(Subject, V1), size=10))
print(p.points)
Но я не могу заставить линии пересекать факторы. То есть при переходе от geom_point к geom_line ничего не отображается
# does nothing
p.line <- p + geom_line(data=sleepsummary, aes(x=V1, y=reorder(Subject, V1)))
print(p.line)
У кого-нибудь есть идеи? В конечном счете, моя цель состоит в том, чтобы таким образом построить некоторые результаты модели поверх необработанных данных, поэтому методы вычисления средств «на лету» при построении исходного фрейма данных менее полезны, поскольку мне нужно получить свои данные из более сложная модель подходит.
Спасибо за любую помощь!
Ryan