3

私はこのようなデータを持っています:

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)))

そして、barplotwith beside = TRUEand beside = FALSETRUEfor Catand Comp、and FALSE = Type)のようなものが必要です。

このデータを使用すると、8列(Compwith CatComp = 2003 + Cat = A ; Comp = 2003 + Cat = B ; ... ; Comp = 2004 + Cat = D)の交互作用)のプロットが作成され、各列には変数の2つのスタック列(TypeFreeおよびUsed)のレベル)がありCountます。

この種のプロットをどのように行うことができますか?EXCELで例を試してみましたが、失敗しました。

4

2 に答える 2

4

lattice

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

ここに画像の説明を入力してください

コメントからグループ化する別の方法:

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

ここに画像の説明を入力してください

于 2013-02-18T16:00:23.897 に答える
4

同様にggplot2

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

追加の変数(または2つ)をグループ化するには、facet_wrapまたはを使用できますfacet_grid

ggplot(data, aes(x=Cat, y=Count, fill=Type)) +   
  geom_bar(position='stack', stat='identity') +
  facet_wrap( ~ Comp)
于 2013-02-18T16:02:13.420 に答える