¿Cómo se especifican diferentes geoms para diferentes facetas en un ggplot?¿Puedes especificar diferentes geoms para diferentes facetas en un ggplot?
(Pregunta formulada en nombre de @pacomet, que wanted to know.)
¿Cómo se especifican diferentes geoms para diferentes facetas en un ggplot?¿Puedes especificar diferentes geoms para diferentes facetas en un ggplot?
(Pregunta formulada en nombre de @pacomet, que wanted to know.)
aquí es otro enfoque de subconjuntos de datos:.
ggplot(mtcars, aes(mpg, disp)) + facet_wrap(~cyl) +
geom_point(data = subset(mtcars, cyl == 4)) +
geom_line(data = subset(mtcars, cyl == 6)) +
geom_text(data = subset(mtcars, cyl == 8), aes(label = gear))
He aquí algunos datos de la muestra con 5 grupos (g
). Queremos un tipo de geom diferente en la quinta faceta. Observe el truco de crear dos versiones diferentes de la variable y
, una para las primeras cuatro facetas y otra para la quinta.
dfr <- data.frame(
x = rep.int(1:10, 5),
y = runif(50),
g = gl(5, 10)
)
dfr$is.5 <- dfr$g == "5"
dfr$y.5 <- with(dfr, ifelse(is.5, y, NA))
dfr$y.not.5 <- with(dfr, ifelse(is.5, NA, y))
Si los diferentes geoms pueden usar la misma estética (como punto y líneas), entonces no es un problema.
(p1 <- ggplot(dfr) +
geom_line(aes(x, y.not.5)) +
geom_point(aes(x, y.5)) +
facet_grid(g ~ .)
)
Sin embargo, un diagrama de puntos y un gráfico de barras requieren diferentes facetas, por lo que no funcionan como se esperaba toegther.
(p2 <- ggplot(dfr) +
geom_line(aes(x, y.not.5)) +
geom_bar(aes(y.5)) +
facet_grid(g ~ .)
)
En este caso es mejor para dibujar gráficos separados, y quizás ellos se combinan con Viewport
.
Gracias por preguntar Richie – pacomet