Uso de ggplot2 Estoy creando un histograma con un factor en el eje horizontal y otro factor para el color de relleno, utilizando una posición esquivada. Mi problema es que el factor de relleno a veces toma solo un valor por un valor del factor horizontal, y con nada que esquivar, la barra ocupa todo el ancho. ¿Hay alguna manera de evitar que esquive nada para que todos los anchos de barras sean iguales? ¿O lo que equivale a trazar los 0?¿Una forma de esquivar siempre un histograma?
Por ejemplo
ggplot(data = mtcars, aes(x = factor(carb), fill = factor(gear))) +
geom_histogram(position = "dodge")
This answer tiene un par de ideas. También se preguntó antes de que se lanzara la nueva versión, entonces tal vez algo cambió? Usar facetas (también se muestra here) No me gusta para mi situación, aunque supongo que editar los datos y usar geom_bar
podría funcionar, pero se siente poco elegante. Por otra parte, cuando traté facetear de todos modos
ggplot(mtcars, aes(x = factor(carb), fill = factor(gear))) +
geom_bar() + facet_grid(~factor(carb))
consigo el error "Error en layout_base (datos, cols, gota = gota): Al menos una capa debe contener todas las variables utilizadas para facetear"
I supongo que podría generar una trama de datos de recuentos y luego usar geom_bar
,
mtcounts <- ddply(subset(mtcars, select = c("carb", "gear")),
.fun = count, .variables = c("carb", "gear"))
completando los niveles que no están presentes con 0 de. ¿Alguien sabe si eso funcionaría o si hay una manera mejor?
Sé que usted no se considera que sea ideal, pero creo que antes de calcular el recuento y el uso de geom_bar sería mi forma preferida de hacer esto. – joran