Je souhaite créer un diagramme de barres groupées tout en conservant la commande. S'il s'agissait d'une seule colonne et non d'un graphique à barres groupées, l'utilisation de la fonction de réorganisation est évidente. Mais je ne sais pas comment l'utiliser sur un data.frame fondu.ggplot2: créer un diagramme à barres groupées ordonnées - (utilisation réorganiser)
Voici l'explication en détail l'exemple de code:
Disons que nous avons data.frame suivants:
d.nfl <- data.frame(Team1=c("Vikings", "Chicago", "GreenBay", "Detroit"), Win=c(20, 13, 9, 12))
tracer une intrigue simple barre tout en le retournant.
ggplot(d.nfl, aes(x = Team1, y=Win)) + geom_bar(aes(fill=Team1), stat="identity") + coord_flip()
ci-dessus parcelle aura pas un ordre et si je veux commander l'intrigue en gagnant je peux faire ce qui suit:
d.nfl$orderedTeam <- reorder(d.nfl$Team1, d.nfl$Win)
ggplot(d.nfl, aes(x = orderedTeam, y=Win)) + geom_bar(aes(fill=orderedTeam), stat="identity") + coord_flip()
Maintenant, supposons que l'on ajoute une autre colonne (à trame de données d'origine)
d.nfl$points <- c(12, 3, 45, 5)
Team1 Win points
1 Vikings 20 12
2 Chicago 13 3
3 GreenBay 9 45
4 Detroit 12 5
pour générer terrain bar groupés, nous devons d'abord faire fondre:
library(reshape2)
> d.nfl.melt <- melt(d.nfl[,c('Team1','Win','points')],id.vars = 1)
> ggplot(d.nfl.melt,aes(x = Team1,y = value)) + geom_bar(aes(fill = variable),position = "dodge", stat="identity") + coord_flip()
ci-dessus ggplot n'est pas ordonné.
mais comment je
Vous avez réorganisé les niveaux de facteur la première fois, et cela a fonctionné. Peut-être essayer de définir l'ordre du niveau de facteur sur le cadre de données fondu ...? – joran
Reproduction possible de [Ordre Bars dans le graphique à barres ggplot2] (http://stackoverflow.com/questions/5208679/order-bars-in-ggplot2-bar-graph) – alistaire
Quelque chose de lié [ici] (http: // stackoverflow. com/questions/1721536/changer l'ordre des dodged-bars-in-ggplot2-barplot). Avec l'empilement, il vous suffit de commander l'ensemble de données avant de tracer, mais cela ne semble pas fonctionner pour l'esquive. – aosmith