superponer - R: Gráfico de densidad con colores por grupo?
superponer graficas en r (2)
Tengo datos de 2 poblaciones. Me gustaría obtener el gráfico de histograma y densidad de ambos en el mismo gráfico. Con un color para una población y otro color para la otra.
Lo he intentado (ejemplo):
library(ggplot2)
AA <- rnorm(100000, 70,20)
BB <- rnorm(100000,120,20)
valores <- c(AA,BB)
grupo <- c(rep("AA", 100000),c(rep("BB", 100000)))
todo <- data.frame(valores, grupo)
ggplot(todo, aes(x=valores, fill=grupo, color=grupo)) +
geom_histogram(aes(y=..density..), binwidth=3)+ geom_density(aes(color=grupo))
Pero solo estoy obteniendo un gráfico con una sola línea y un solo color.
Me gustaría tener diferentes colores para las dos líneas de densidad. Y si es posible los histogramas también.
Lo hice con ggplot2 pero la base R también estaría bien.
o no sé lo que he cambiado y ahora entiendo esto:
ggplot(todo, aes(x=valores, fill=grupo, color=grupo)) +
geom_histogram( position="identity", binwidth=3, alpha=0.5)+
geom_density(aes(color=grupo))
Una solución base R podría ser:
hist(AA, probability = T, col = rgb(1,0,0,0.5), border = rgb(1,0,0,1),
xlim=range(AA,BB), breaks= 50, ylim=c(0,0.025), main="AA and BB", xlab = "")
hist(BB, probability = T, col = rgb(0,0,1,0.5), border = rgb(0,0,1,1), add=T)
lines(density(AA))
lines(density(BB), lty=2)
Para alfa, utilicé rgb
. Pero hay más formas de hacerlo. Consulte alpha()
en el paquete de scales
, por ejemplo. También agregué el parámetro de rupturas para la gráfica de los AA para aumentar el ancho de banda en comparación con el grupo de BB.