los - superponer graficas en r ggplot
¿Cómo crear un gráfico de líneas facetado usando ggplot? (2)
Tengo un marco de datos creado con este código:
require(reshape2)
foo <- data.frame( abs( cbind(rnorm(3),rnorm(3, mean=.8),rnorm(3, mean=.9),rnorm(3, mean=1))))
qux <- data.frame( abs( cbind(rnorm(3),rnorm(3, mean=.3),rnorm(3, mean=.4),rnorm(1, mean=2))))
bar <- data.frame( abs( cbind(rnorm(3,mean=.4),rnorm(3, mean=.3),rnorm(3, mean=.9),rnorm(3, mean=1))))
colnames(foo) <- c("w","x","y","z")
colnames(qux) <- c("w","x","y","z")
colnames(bar) <- c("w","x","y","z")
rownames(foo) <- c("n","q","r")
rownames(qux) <- c("n","q","r")
rownames(bar) <- c("n","q","r")
foo <- cbind(ID=rownames(foo),foo)
bar <- cbind(ID=rownames(bar),qux)
qux <- cbind(ID=rownames(bar),qux)
foo$fn <- "foo"
qux$fn <- "qux"
bar$fn <- "bar"
alldf<-rbind(foo,qux,bar)
alldf.m <- melt(alldf)
Lo que quiero hacer es crear una curva de línea ggplot
en formato de faceta , por lo que crea un gráfico como este:
El gráfico real no contiene líneas hacia arriba; esto es solo un boceto para que la separación de líneas sea clara.
Mi código actual no funciona:
library(ggplot2)
p <- ggplot(data=alldf.m, aes(x=variable)) +
geom_line(aes(colour=ID),alpha=0.4)
p <- p + facet_wrap( ~ fn)
p
¿Cuál es la mejor manera de hacerlo?
Incluso es un ggplot2 requerido por el OP, pero creo que este ejemplo también es adecuado para lattice
:
library(lattice)
xyplot(data=alldf.m, value~variable|fn, type =''b'', groups = ID, auto.key = T)
y usando latticeExtra
podemos obtener algo de colse para la solución ggplot2
:
p <- xyplot(data=alldf.m, value~variable|fn, type =''b'', groups = ID, auto.key = T)
update(p , par.settings = ggplot2like())
Prueba esto:
ggplot(data=alldf.m, aes(x=variable, y = value, colour = ID, group = ID)) +
geom_line() + facet_wrap(~fn)