ggplot barre de regroupement multiple

je voudrais savoir comment faire pour obtenir 9 regroupement diagramme en barres (3x3) togheter.

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

les 9 placettes doivent être groupées selon le "Type" A à I.

Ensuite chaque graphe à barres groupées devrait avoir la fréquence sur l'axe des y, l'axe des x est groupé par 1 pce à 6 pce et subdivisé par année.

j'ai l'exemple suivant sur Excel (cf. image) et souhaite créer le même résultat sur r avec ggplot. Est-il possible?

Merci

enter image description here

8
demandé sur Didzis Elferts 2013-06-25 21:19:06

2 réponses

tout d'abord, remodelez vos données du format large au format long.

library(reshape2)
df.long<-melt(df,id.vars=c("ID","Type","Annee"))

ensuite, comme lors de l'importation de la lettre de données X est ajouté aux noms de variables commençant par le nombre, retirez-le avec substring() .

df.long$variable<-substring(df.long$variable,2)

utilisez maintenant variable comme x, value comme y, Annee comme remplissage et geom_bar() pour obtenir barplot. Avec facet_wrap() vous pouvez diviser les données par 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

24
répondu Didzis Elferts 2013-06-25 17:49:00

utilisant @Didzis refaçonné des données, Voici une version en treillis:

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

10
répondu agstudy 2013-06-25 18:03:49