ggplot多个分组栏

时间:2013-06-25 17:19:07

标签: r ggplot2 grouping bar-chart

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

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

9个地块应该是“类型”A到I的组合。

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

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

由于

enter image description here

2 个答案:

答案 0 :(得分:27)

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

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

答案 1 :(得分:9)

使用@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