Barplot有3个分类变量

时间:2013-02-18 15:49:57

标签: r plot

我有这样的数据:

data <- data.frame(Comp = factor(rep(2003:2004, each = 8)), 
                   Cat = rep(letters[1:4], 4), 
                   Type = rep(c('Free','Used'), each = 4), 
                   Count = trunc(rnorm(16,30,2)))

我需要barplot beside = TRUEbeside = FALSETRUE CatComp以及FALSE = Type之类的内容})。

根据这些数据,它将生成一个包含8列的图(CompCatComp = 2003 + Cat = A ; Comp = 2003 + Cat = B ; ... ; Comp = 2004 + Cat = D)的交互),每个列都有2个堆叠列({{{{ 1}}(TypeFree))Used变量。

任何提示我怎么能做这种情节?我试图在EXCEL中做一个例子,但我也失败了。

2 个答案:

答案 0 :(得分:4)

lattice

 barchart(Count~interaction(Cat,Comp),groups=Type,data=data,auto.key=T,stack=T)

enter image description here

另一种分组方式,来自评论:

barchart(Count~Cat|factor(Comp),groups=Type,data=data,auto.key=T,stack=T)

enter image description here

答案 1 :(得分:4)

同样在ggplot2

ggplot(data, aes(x=interaction(Cat, Comp), y=Count, fill=Type)) +   
  geom_bar(position='stack', stat='identity')

要对其他变量(或两个)进行分组,您可以使用facet_wrapfacet_grid

ggplot(data, aes(x=Cat, y=Count, fill=Type)) +   
  geom_bar(position='stack', stat='identity') +
  facet_wrap( ~ Comp)