首页 文章

ggplot多个分组栏

提问于
浏览
8

我想知道如何获得9个分组条形图(3x3)togheter .

我的CSV: data <- read.csv("http://pastebin.com/raw.php?i=6pArn8GL", sep = ";")

根据“类型”A到I,9个地块应该是组合 .

然后,每个分组条形图应在y轴上具有频率,x轴按1 pce到6 pce分组并按年度分配 .

我在Excel上有以下示例(参见图像),并希望在r上使用ggplot创建相同的结果 . 可能吗?

谢谢

enter image description here

2 回答

  • 10

    首先,将数据从宽格式转换为长格式 .

    library(reshape2)
    df.long<-melt(df,id.vars=c("ID","Type","Annee"))
    

    接下来,在导入数据期间,将字母X添加到以数字开头的变量名称中,使用 substring() 将其删除 .

    df.long$variable<-substring(df.long$variable,2)
    

    现在使用 variable 作为x, value 作为y, Annee 作为填充,使用 geom_bar() 获取条形图 . 使用 facet_wrap() ,您可以按 Type 拆分数据 .

    ggplot(df.long,aes(variable,value,fill=as.factor(Annee)))+
       geom_bar(position="dodge",stat="identity")+
       facet_wrap(~Type,nrow=3)
    

    enter image description here

  • 26

    使用@Didzis重塑数据,这里是一个点阵版本:

    barchart(value~variable|Type,
             groups=Annee,data=df.long,layout=c(3,3),
             between=list(3,3),
             axis=axis.grid,
             auto.key=TRUE)
    

    enter image description here

相关问题