Ggplot2: линия, соединяющая средства сгруппированных данных
Я пытаюсь сгруппировать одну переменную моих данных по другому, а затем построить линию через средства. Он отлично работает, когда обе переменные являются числами. Однако у меня проблема, когда переменная группировки является фактором. У меня тут макет.
x <- sample(1:3, 40, replace=T)
y <- rnorm(40)
df1 <- data.frame(x, y)
qplot(x, y, data=df1) + stat_summary(fun.y=mean, colour="red", geom="line")
![alt text]()
Это выглядит великолепно. Однако, если переменная x является фактором, я не получаю строку.
df2 <- data.frame(x=as.factor(x), y)
qplot(x, y, data=df2) + stat_summary(fun.y=mean, colour="red", geom="line")
![alt text]()
Есть ли что-то, что я могу сделать, чтобы отобразить эту строку?
Ps. geom = "point" работает, но не geom = "line"
qplot(x, y, data=df2) + stat_summary(fun.y=mean, colour="red", geom="point")
![alt text]()
Спасибо за чтение!
Ответы
Ответ 1
ggplot2
намеренно делает немного сложным рисовать линии по фактору оси x, потому что вам нужно убедиться, что это имеет смысл. Если ваша ось x была "Нью-Йорк", "Филадельфия" и "Бостон", было бы неплохо провести линию, соединяющую их.
Однако, считая, что ваша переменная x имеет значимый порядок, вы должны определить эстетику group
, чтобы нарисовать нужную строку. Здесь group = 1
.
qplot(x, y, data=df2) +
stat_summary(fun.y=mean, colour="red", geom="line", aes(group = 1))
Если вы просто добавили geom_line()
к сюжету, подобному этому, вам нужно будет определить переменную группировки аналогичным образом.