Saltar al contenido

Cómo cambiar el orden de las etiquetas de facetas en ggplot (etiquetas de ajuste de facetas personalizadas)

Hola usuario de nuestra página, hallamos la solución a tu pregunta, has scroll y la hallarás más abajo.

Solución:

No confíe en el orden predeterminado de niveles impuesto por factor() o internamente por ggplot si la variable de agrupación que proporciona es no un factor. Establezca los niveles explícitamente usted mismo.

dat <- data.frame(x = runif(100), y = runif(100), 
                  Group = gl(5, 20, labels = LETTERS[1:5]))
head(dat)
with(dat, levels(Group))

¿Qué pasa si los quiero en este orden arbitrario?

set.seed(1)
with(dat, sample(levels(Group)))

Para hacer esto, establezca los niveles de la manera que desee.

set.seed(1) # reset the seed so I get the random order form above
dat <- within(dat, Group <- factor(Group, levels = sample(levels(Group))))
with(dat, levels(Group))

Ahora podemos usar esto para dibujar los paneles en el orden nosotros querer:

require(ggplot2)
p <- ggplot(dat, aes(x = x)) + geom_bar()
p + facet_wrap( ~ Group)

Que produce:

facetas envueltas

Solo estoy trabajando en un problema similar. Tengo niveles que se ven así por defecto:

 [1] "A1"  "A10" "A2"  "A3"  "A4"  "A5"  "A6"  "A7"  "A8"  "A9" 
[11] "B1"  "B2"  "B3"  "B4"  "B5"  "B6"  "B7"  "B8"  "B9" 

Tenga en cuenta que el segundo nivel está fuera de lugar debido al orden alfabético.

Esto es lo que estoy haciendo para arreglar el orden:

reorder(factor(fct),
        fct %>%
          str_replace("([[:alpha:]]+)", "\1|") %>%
          str_split("\|") %>%
          sapply(function(d) sprintf("%s%02d", d[1], as.integer(d[2]))),
        function(x) x[1])

Reemplaza niveles como "A1" con "A01" y luego reordena de acuerdo con estos. Estoy seguro de que podría hacer esto mucho más eficientemente, pero hace el trabajo.

Podría adaptarse para abordar el problema original.

Si conservas algún recelo o forma de arreglar nuestro artículo eres capaz de añadir una disquisición y con mucho placer lo ojearemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *