Réorganiser les barres dans geom_bar ggplot2

119

J'essaie de créer un diagramme à barres où l'intrigue est ordonnée du miRNAplus élevé valueau plus miRNAbas. Pourquoi mon code ne fonctionne-t-il pas?

> head(corr.m)

        miRNA         variable value
1    mmu-miR-532-3p      pos     7
2    mmu-miR-1983        pos    75
3    mmu-miR-301a-3p     pos    70
4    mmu-miR-96-5p       pos     5
5    mmu-miR-139-5p      pos    10
6    mmu-miR-5097        pos    47

ggplot(corr.m, aes(x=reorder(miRNA, value), y=value, fill=variable)) + 
  geom_bar(stat="identity")
user3741035
la source

Réponses:

216

Votre code fonctionne bien, sauf que le barplot est ordonné de bas en haut. Lorsque vous souhaitez ordonner les barres de haut en bas, vous devrez ajouter un -signe avant value:

ggplot(corr.m, aes(x = reorder(miRNA, -value), y = value, fill = variable)) + 
  geom_bar(stat = "identity")

qui donne:

entrez la description de l'image ici


Données utilisées:

corr.m <- structure(list(miRNA = structure(c(5L, 2L, 3L, 6L, 1L, 4L), .Label = c("mmu-miR-139-5p", "mmu-miR-1983", "mmu-miR-301a-3p", "mmu-miR-5097", "mmu-miR-532-3p", "mmu-miR-96-5p"), class = "factor"),
                         variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L), .Label = "pos", class = "factor"),
                         value = c(7L, 75L, 70L, 5L, 10L, 47L)),
                    class = "data.frame", row.names = c("1", "2", "3", "4", "5", "6"))
Jaap
la source
il n'est pas commandé dans mon intrigue pour une raison quelconque
user3741035
@ user3741035 Étrange. L'avez-vous utilisé sur l'échantillon de données que vous avez fourni ci-dessus ou sur l'ensemble de données?
Jaap le
Quelle version de R & ggplot utilisez-vous? Pouvez-vous également offrir un plus grand échantillon de données (de préférence avec plus d'une valeur pour variable)?
Jaap le
6
trouvé la solution: j'avais chargé la bibliothèque (gplots) qui a gâché les choses
user3741035
1
@maycca Cela me donne le résultat correct (sur OSX 10.10.4 / Windows 7, R 3.2.3 et ggplot2 2.1.0). Peut-être devriez-vous commencer par une nouvelle session?
Jaap