繁体   English   中英

ggplot2 函数中的均值和中值箱线图图例

[英]Mean and median boxplot legend in the ggplot2 function

我正在尝试添加一个标题,标识“球”是平均值,“线”是箱线图的中位数,如下所示:

mediasCon1 = tapply(dados$FS, dados$Trat, mean)

boxplot(dados$FS ~ dados$Trat, data = dados, col="gray", 
        xlab = 'Tratamentos', ylab = 'Espermatozoides - Cauda Solta')
points(1:3, mediasCon1, col = 'black', pch = 16)
legend("topleft", legend=c("Média", "Mediana"),
       lty=c(NA,1), col="black", lwd=1:3, bty="n", pch=c(16,NA))

但是,在使用 ggplot2 函数时出现以下错误:

ggplot(data=dados, aes(x=Trat, y=FS)) + geom_boxplot(fill=c("#DEEBF7","#2171B5","#034E7B"),color="black") +
  xlab('Tratamentos') +
  ylab('Espermatozoides - Cauda Solta') + 
  stat_summary(fun=mean, colour="black", geom="point", 
               shape=18, size=5) + 
  theme(axis.title = element_text(size = 20),
        axis.text = element_text(size = 16)) +
legend("topleft", legend=c("Média", "Mediana"),
       lty=c(NA,1), col="black", lwd=1:3, bty="n", pch=c(16,NA))

Error in strwidth(legend, units = "user", cex = cex, font = text.font) : 
  plot.new has not been called yet

试试这个方法:

library(ggplot2)
#Code
ggplot(data=dados, aes(x=Trat, y=FS)) + 
  geom_line(aes(linetype='median'),size=1)+
  geom_point(aes(shape='mean'),size=5)+
  geom_boxplot(fill=c("#DEEBF7","#2171B5","#034E7B"),color="black") +
  xlab('Tratamentos') +
  ylab('Espermatozoides - Cauda Solta') + 
  stat_summary(fun=mean, colour="black", geom="point", 
               shape=18, size=5) + 
  theme(axis.title = element_text(size = 20),
        axis.text = element_text(size = 16))+
  scale_linetype_manual('Variable',values='solid')+
  scale_shape_manual('',values = 18)+
  theme(legend.spacing.y = unit(0.1, "cm"))

输出:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM