varias superponer studio los graficos graficas ggplot geom_text etiquetas escala ejes como cambiar avanzados r ggplot2

studio - superponer graficas en r ggplot



¿Puedes especificar diferentes geoms para diferentes facetas en un ggplot? (2)

¿Cómo se especifican diferentes geoms para diferentes facetas en un ggplot?

(Preguntado en nombre de @pacomet, que quería saber ).


Aquí hay algunos datos de 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 líneas y un gráfico de barras requieren diferentes facetas, por lo que no funcionan igual que lo esperado.

(p2 <- ggplot(dfr) + geom_line(aes(x, y.not.5)) + geom_bar(aes(y.5)) + facet_grid(g ~ .) )

En este caso, es mejor dibujar dos gráficos separados, y quizás combinarlos con Viewport .


aquí hay otro enfoque al subconjunto 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))