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