重新排列嵌套的条形图,ggplot

时间:2015-01-14 21:07:44

标签: r ggplot2

我正在尝试使用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)

0 个答案:

没有答案