我想知道如何将9个分组条形图(3x3)放在一起。
我的CSV文件:
data <- read.csv("http://pastebin.com/raw.php?i=6pArn8GL", sep = ";")
按照“Type” A到I分组,应该将9个绘图放在一起。
然后,每个分组的条形图应该在y轴上显示频率,x轴按1个到6个进行分组,再按年份进行细分。
我在Excel中有以下示例(参见图片),并希望使用ggplot在R中创建相同的结果。这是可能的吗?
我想知道如何将9个分组条形图(3x3)放在一起。
我的CSV文件:
data <- read.csv("http://pastebin.com/raw.php?i=6pArn8GL", sep = ";")
按照“Type” A到I分组,应该将9个绘图放在一起。
然后,每个分组的条形图应该在y轴上显示频率,x轴按1个到6个进行分组,再按年份进行细分。
我在Excel中有以下示例(参见图片),并希望使用ggplot在R中创建相同的结果。这是可能的吗?
首先,将您的数据从宽格式转换为长格式。
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)
使用 @Didzis 改变数据后,这里是格点化版本:
barchart(value~variable|Type,
groups=Annee,data=df.long,layout=c(3,3),
between=list(3,3),
axis=axis.grid,
auto.key=TRUE)