1
我想绘制geom_bar图上的误差线。我知道你可以调整aes(ymax,ymin)来只显示上面的或仅显示下面的条。geom_errorbar正面平均值上限和负面平均值下限
但是,我有一些负面和正面的平均值,我想分别显示错误栏。
下面是一些示例代码和数据
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())
感谢 玩 - 深
非常感谢!这工作,我已经创建了一个黑色的方块周围,使他们看起来更统一。 geom_bar(stat =“identity”,color =“black”,position = dodge) – Deep