Я рисую линейный график в ggplot. Каждая линия соответствует одному человеку и его развитию во времени. Упрощенный воспроизводимый пример:
dat <- data.frame(x=rep(1:10, 10), y=rnorm(100), person=rep(LETTERS[1:10], each=10))
ggplot(dat, aes(x, y, group=person)) + geom_line(aes(color=person))
Что производит:
Я хочу добавить скрипку в точке x = 11, чтобы показать общее распределение значений по оси Y.
Если я добавлю + geom_violin()
к вызову ggplot, скрипка будет нарисована при каждом значении x (что имеет смысл). Но я хочу добавить скрипку, которую я получил бы с ggplot(dat, aes(x, y)) + geom_violin()
.
Как мне объединить эти два geom_
на одном графике, чтобы получить полный обзор моих данных?
РЕДАКТИРОВАТЬ: я заставил его работать с geom_errorbar
, но не могу заставить что-то похожее на работу со скрипкой:
ggplot(dat, aes(x, y, group=person)) + geom_line(aes(color=person)) +
geom_errorbar(aes(x=11, ymax=mean(dat$y)+sd(dat$y), ymin=mean(dat$y)-sd(dat$y))) +
geom_point(aes(x=11, y=mean(dat$y)), size=4)
Что дает мне это:
В идеале я бы хотел, чтобы скрипка вместо планок погрешностей лучше отражала распределение.