J'essaie de créer un diagramme à barres dans lequel le tracé est ordonné du miRNA
au plus élevé value
au miRNA
au plus bas. Pourquoi mon code ne fonctionne 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")
Votre code fonctionne bien, sauf que le barplot est ordonné du plus bas au plus haut. Lorsque vous voulez commander les barres de haut en bas, vous devez ajouter un signe -
avant value
:
ggplot(corr.m, aes(x = reorder(miRNA, -value), y = value, fill = variable)) +
geom_bar(stat = "identity")
qui donne:
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"))
Vous pouvez réorganiser les variables le long de l'axe des x à l'aide de la fonction reorder()
. Cependant, parfois, ggplot n'écoute pas pour réorganiser. Cela est généralement dû au fait que les couches supplémentaires du tracé sont ajoutées dans le mauvais ordre. Si vous avez un tracé complexe et que reorder () n'affecte pas le résultat, essayez de supprimer ou de désactiver temporairement les autres fonctions, puis de les rajouter un par un.
ggplot(aes(x=reorder(myx, -myy), y=myy), data=mydf) + geom_bar(stat="identity")