Je voudrais tracer des barres d'erreur sur mon tracé geom_bar. Je sais que vous pouvez ajuster aes (ymax, ymin) pour n'afficher que les barres supérieures ou inférieures. Mais, j'ai quelques valeurs moyennes négatives et positives pour lesquelles je voudrais montrer les barres d'erreur respectivement.geom_errorbar supérieure pour moyenne positive et inférieure pour moyenne négative
Voici quelques exemples de code et des données pour jouer avec
library(ggplot)
myData <- aggregate(mtcars$mpg,
by = list(cyl = mtcars$cyl, gears = mtcars$gear),
FUN = function(x) c(mean = mean(x), sd = sd(x),
n = length(x)))
myData <- do.call(data.frame, myData)
myData$se <- myData$x.sd/sqrt(myData$x.n)
colnames(myData) <- c("cyl", "gears", "mean", "sd", "n", "se")
myData$names <- c(paste(myData$cyl, "cyl /",
myData$gears, " gear"))
myData$sign <- c(1, -1, 1, 1, -1, 1, -1, 1)
myDataN <- mutate(myData, mean_new = mean*sign, se_new=se+30)
dodge <- position_dodge(width = 0.9)
limits <- aes(
ymax = myDataN$mean_new + myDataN$se_new,
ymin = myDataN$mean_new - myDataN$se_new)
#ymax = myDataN$mean_new, #for upper
#ymin = myDataN$mean_new) #for lower
p <- ggplot(data = myDataN, aes(x = names, y = mean_new, fill = names))
p + geom_bar(stat = "identity", position = dodge) +
geom_errorbar(limits, position = dodge, width = 0.25) +
theme(axis.text.x=element_blank(), axis.ticks.x=element_blank(),
axis.title.x=element_blank())
Merci -deep
Merci beaucoup! cela fonctionne et j'ai créé une boîte noire autour des barres afin qu'elles soient plus uniformes. geom_bar (stat = "identité", color = "black", position = esquive) – Deep