Si quiero ordenar las barras en un diagrama de barras ggplot2 de mayor a menor, a continuación, por lo general me actualizo los niveles de los factores de la categoría de la barra, al igual queCómo pedir barras en ggplot2 facetas gráfico de barras
one_group <- data.frame(
height = runif(5),
category = gl(5, 1)
)
o <- order(one_group$height, decreasing = TRUE)
one_group$category <- factor(one_group$category, levels = one_group$category[o])
p_one_group <- ggplot(one_group, aes(category, height)) +
geom_bar(stat = "identity")
p_one_group
Si tengo varios grupos de diagramas de barras que quisiera en diferentes facetas, con cada faceta con barras ordenadas de mayor a menor (y diferentes ejes x), entonces la técnica se descompone.
dado algunos datos de la muestra
two_groups <- data.frame(
height = runif(10),
category = gl(5, 2),
group = gl(2, 1, 10, labels = letters[1:2])
)
y el código de trazado
p_two_groups <- ggplot(two_groups, aes(category, height)) +
geom_bar(stat = "identity") +
facet_grid(. ~ group, scales = "free_x")
p_two_groups
¿qué necesito hacer para conseguir la barra de ordenar la derecha?
Si ayuda, un problema equivalente a resolver es: ¿cómo actualizo los niveles de factor después de haber hecho la facetación?
Buena pregunta. No puedo pensar inmediatamente en una respuesta, solo alternativas. 1) Use align.plots en el paquete ggExtra. 2) Construya gráficas separadas e individuales y combínelas usando ventanas gráficas: vplayout en ggExtra lo simplifica. Si esto parece útil, puedo publicar un ejemplo en una respuesta. – Andrie