Я делаю двухгрупповой точечный график, сравнивая каждую группу по их способности достичь определенного процента от 4 различных результатов. Прямо сейчас у меня есть график, как я хочу, показывая 2 цвета (по одному для каждой группы) и среднее значение плюс стандартное отклонение в черном. Моя проблема в том, что моя легенда показывает средние точки как две разные группы, и я хочу, чтобы они отображали цветные точки группы. Любая идея, как я могу это исправить, не меняя среднее значение на цвет групп? График и код прилагаются. Спасибо!
####GG Plot Package
library(ggplot2)
####Using tapply function
perc = read.csv("sealedvsunsealed.csv", header=TRUE)
perc
percmean <- tapply(perc$Percentage, list(perc$Group, perc$Hydrogels), mean)
percsd <- tapply(perc$Percentage, list(perc$Group, perc$Hydrogels), sd)
percmean
percsd
####Subseting the data (which function)
GI <- perc[which(perc$Hydrogels == 'Successful \nInjection'),]
A <- perc[which(perc$Hydrogels == 'Aggregation\nObserved'),]
CA <- perc[which(perc$Hydrogels == 'Cylindrical \nAggregates'),]
CLA <- perc[which(perc$Hydrogels == 'Fully Fills\nChannel'),]
GI
A
CA
CLA
####Create an ANOVA table
GI.aov <- aov(Percentage ~ Group, data = GI)
A.aov <- aov(Percentage ~ Group, data = A)
CA.aov <- aov(Percentage ~ Group, data = CA)
CLA.aov <- aov(Percentage ~ Group, data = CLA)
####Conduct a Tukey's multiple comparision procedure
TukeyHSD(GI.aov)
TukeyHSD(A.aov)
TukeyHSD(CA.aov)
TukeyHSD(CLA.aov)
####Grouped Dot Plot with stats added
vF = ggplot(perc, aes(x=factor(perc$Hydrogels, level = level_order), y=Percentage, fill=perc$Group)) +
geom_dotplot(binaxis='y', stackdir='center', position = position_dodge(0.7))+
theme(legend.position = "right", legend.title = element_blank(),
panel.background = element_blank(),
axis.line = element_line(colour = "black"),
axis.text = element_text(size = rel(1.5)),
axis.title.y = element_text(size = rel(1.5)))
vF
vF + stat_summary(fun.y=mean, geom ="point", shape=18, size=4, position = position_dodge(0.7)) +
stat_summary(fun.ymin=function(x)(mean(x)-sd(x)),
fun.ymax=function(x)(mean(x)+sd(x)),
position = position_dodge(0.7),
colour = "black",
geom="errorbar", width=0.3, size=1)+
labs(x = NULL)
Данные
График показывает правильное расположение, но неверную легенду