varias una personalizar modificar los leyenda graficas grafica ggplot etiquetas escala ejes como cambiar r ggplot2

una - personalizar ejes en r



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

Hola, tracé una trama faceta usando ggplot en R y aquí está la trama

El problema que tengo es que las facetas (etiquetas) se ordenan alfabéticamente (Ej: E1, E10, E11, E13, E2, E3, I1, I10, I2) pero necesito que sean un pedido personalizado como E1, I1, E2 , I2, E3, E10, I10, E11, E13.

Cómo puedo hacer eso ?


No confíe en el orden predeterminado de los niveles impuestos por factor() o internamente por ggplot si la variable de agrupación que suministra no es 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, configure 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 tener los paneles dibujados en el orden que queremos:

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

Que produce:


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 los niveles como "A1" por "A01" y luego los reordena según estos. Estoy seguro de que podrías hacer esto mucho más eficientemente, pero hace el trabajo.

Se podría adaptar para abordar el problema original.