web-dev-qa-db-ja.com

ggplot複数のグループ化バー

9つのグループ化棒グラフ(3x3)をまとめる方法を知りたいです。

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

9つのプロットは、「タイプ」AからIに応じたグループである必要があります。

次に、グループ化された各棒グラフの頻度はy軸にあり、x軸は1pceから6pceでグループ化され、年ごとに細分化されます。

私はExcelで次の例を持っています(画像を参照)。ggplotを使用してrで同じ結果を作成したいと思います。出来ますか?

ありがとう

enter image description here

9
S12000

まず、データをワイドフォーマットからロングフォーマットに再形成します。

_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

27
Didzis Elferts

@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

9
agstudy