我正在尝试使用ggplot(使用的和预期的位置)创建一个嵌套的条形图,其中5个分类变量代表不同的倾斜度。绘图将在x轴上显示“斜坡倾斜”,在y轴上显示“值”。
目标:我的目标是将两个图表彼此相邻(男性,女性(例如,SoM)),每个图表显示5个斜率类别,每个类别包含2个条(使用和预期(例如,使用))。所有条形都应包含误差条。
我已经编写了一些脚本,但似乎在最后阶段已经失败了。我可以在两个不同的图表中获得男性和女性,但我无法在图表中将条形图组合在一起(尽管在互联网和本网站上查看了大量信息)。 另外,如果有人可以帮助我在5个类别中显示此信息而不是10,我将非常感激。由于类别6与0相同,因此类别7与1相同,因此难以在图表上进行比较。< / p>
下面我已经包含了一些数据,希望能够做出更详细的回复。我还包括了迄今为止我所做的一些语法:
library(ggplot2)
library(reshape2)
library(grid)
Slopebar <- "SLOPEbarplotP4"
#95
SlopeMF <- data.frame(
Slope = factor(1:10),
Male = c(0.47, 0.30, 0.13, 0.05, 0.05, 0.71, 0.22, 0.05, 0.01, 0.00),
Female = c(0.76, 0.19, 0.04, 0.01, 0.00, 0.52, 0.15, 0.33, 0.01, 0.00))
SlopeMF_2$UseExp <- c("Use", "Use", "Use", "Use", "Use", "Exp", "Exp", "Exp", "Exp",
"Exp", "Use", "Use", "Use", "Use", "Use", "Exp", "Exp", "Exp", "Exp", "Exp")
SlopeMF_2$SexMF <- c("M", "M", "M", "M", "M", "M", "M", "M", "M", "M", "F", "F",
"F", "F", "F", "F", "F", "F", "F", "F")
# reshape my_data into long form
SlopeMF_2 <- melt(SlopeMF, id.vars = "Slope")
head(SlopeMF_2)
substrRight <- function(x, n){
substr(x, nchar(x)-n+1, nchar(x))
}
str(SlopeMF_2)
SlopeMF_2$variable<-c(SlopeMF$Male, SlopeMF$Female)
#SlopeMF_2$sex<-substrRight(as.character(SlopeMF_2$variable),1)
summary(SlopeMF_2)
#95
SlopeMF_2$sd <- c(0.140, 0.097, 0.064, 0.032, 0.085, 0.099, 0.060, 0.031, 0.009,
0.004,
0.195, 0.129, 0.054, 0.036, 0.133, 0.113, 0.073, 0.032, 0.010, 0.003)
library(plyr)
HCW.avg <-ddply(SlopeMF_2, c("SexMF", "UseExp", "Slope", "variable"), ` `
function(SlopeMF_2)
return(c(hwy.avg=mean(SlopeMF_2$value), hwy.sd=sd(SlopeMF_2$value))))
str(HCW.avg)
#create the barplot component
HCW.plot<-qplot(Slope, value, data=SlopeMF_2, group = "UseExp",
fill=factor("UseExp"), geom="bar", stat = "identity", drop = FALSE)
#now add the error bars to the plot
WnterHC <- HCW.plot+geom_linerange(aes(ymax=value+sd, ymin=value-sd))
WnterHC + facet_wrap(~SexMF)