#r #ggplot2 #mean #density-plot
#r #ggplot2 #означать #плотность-график
Вопрос:
Я пытаюсь нарисовать сгруппированный график плотности и добавить среднюю линию каждого графика; вот код
data lt;- data.frame( Accuracy=abs(rnorm(140)), Species=c(rep("A.All",20),rep("B. double",60),rep("C.single",60), rep("D.All",20),rep("E.double",60),rep("F.single",60)), Modality=c(rep("All,w0",10),rep("double1,w0",10),rep("double2,w0",10),rep("double3,w0",10), rep("single1,w0",10),rep("single2,w0",10),rep("single3,w0",10), rep("All,w2",10),rep("double1,w2",10),rep("double2,w2",10),rep("double3,w2",10), rep("single1,w2",10),rep("single2,w2",10),rep("single3,w2",10)) ) plt;-ggplot(data, aes(x=Accuracy, fill=Modality)) geom_density(alpha=0.4) facet_wrap(. ~ Species) xlab("Accuracy") ylab("Density") library(plyr) mu lt;- ddply(data, "Modality", summarise, grp.mean=mean(Accuracy)) head(mu) # Add mean lines alt;-p geom_vline(data=mu, aes(xintercept=grp.mean, color=Modality), linetype="dashed") xlab("Accuracy") ylab("Density")
Однако, основываясь на выходной цифре, как
Средние линии абсолютно неверны, например, для первого рисунка слева вверху должно быть две линии для двух графиков плотности, но пара линий создается и повторяется для всех фигур.
Ответ №1:
Вы можете указать как Species
и Modality
plyr
dummy lt;- ddply(data, c("Species","Modality"), summarise, grp.mean=mean(Accuracy)) ggplot(data, aes(x=Accuracy, fill=Modality)) geom_density(alpha=0.4) facet_wrap(. ~ Species) xlab("Accuracy") ylab("Density") geom_vline(data = dummy, aes(xintercept = grp.mean, color = Modality))
dplyr
library(dplyr) dummy lt;- data %gt;% group_by(Species, Modality) %gt;% summarize(mean = mean(Accuracy)) ggplot(data, aes(x=Accuracy, fill=Modality)) geom_density(alpha=0.4) facet_wrap(. ~ Species) xlab("Accuracy") ylab("Density") geom_vline(data = dummy, aes(xintercept = mean, color = Modality))
Комментарии:
1. Спасибо вам за ответ! Я получаю эту ошибку из вашего кода «Ошибка в FUN(X[[i]], …) : объект «Модальность» не найден».
2. @Кэти, это действительно работает на меня. Есть ли
Modality
колонка внутриdata
? Где произошла эта ошибка?3. Я запустил тот же код, что и вы, но я не уверен, почему он выдает мне эту ошибку.
4. @Katie Можете ли вы попробовать с
data
вами указать выше в своем вопросе? И где же возникает эта ошибка?5. Вы мне очень помогли! Я был действительно измотан.