Problema
Queremos reodernar las barras de un diagrama de barras creado con ggplot2. En nuestro ejemplo, se puede observar que las barras no están ni en orden ascendente o descendente.
library(tidyverse)
ggplot(df, aes(x = Position)) + geom_bar()
df <- structure(list(Position = structure(c(3L, 3L, 1L, 1L, 1L, 2L), .Label = c("Defense",
"Striker", "Zoalkeeper"), class = "factor"), Name = structure(c(2L,
1L, 3L, 5L, 4L, 6L), .Label = c("Frank", "James", "Jean", "John",
"Steve", "Tim"), class = "factor")), class = "data.frame", row.names = c(NA,
-6L))
Position Name 1 Zoalkeeper James 2 Zoalkeeper Frank 3 Defense Jean 4 Defense Steve 5 Defense John 6 Striker Tim
Solución
Una alternativa es usar reorder para reordenar los niveles del factor. En orden ascendente (n) o descendente (-n) en función del conteo de la columna Position.
- Orden ascendente
df %>%
count(Position) %>%
ggplot(aes(x = reorder(Position, n), y = n)) +
geom_bar(stat = 'identity') +
xlab("Position")
df %>%
count(Position) %>%
ggplot(aes(x = reorder(Position, -n), y = n)) +
geom_bar(stat = 'identity') +
xlab("Position")
Entradas relacionadas
Referencias
No hay comentarios:
Publicar un comentario