#r #ggplot2 #graphics #statistics #legend
#r #ggplot2 #графика #Статистика #условные обозначения
Вопрос:
Я пытаюсь добавить заголовок, в котором указано, что «шар» является средним значением, а «линия» является медианой диаграммы boxplot следующим образом:
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
Комментарии:
1. Это потому, что вы не можете добавить легенду к ggplot с помощью base R legend() .
Ответ №1:
Попробуйте этот подход:
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"))
Вывод: