varias superponer studio los graficos graficas ggplot español escala ejes como cambiar avanzados r ggplot2

superponer - Superposición de histogramas con ggplot2 en R



superponer graficas en r (2)

Soy nuevo en R y estoy tratando de trazar 3 histogramas en el mismo gráfico. Todo funcionó bien, pero mi problema es que no ves dónde se superponen 2 histogramas: parecen más bien recortados: Histogram

Cuando hago gráficos de densidad, se ve perfecto: cada curva está rodeada por una línea de marco negro, y los colores se ven diferentes donde las curvas se superponen: Diagrama de densidad

¿Puede alguien decirme si se puede lograr algo similar con los histogramas en la primera imagen? Este es el código que estoy usando:

lowf0 <-read.csv (....) mediumf0 <-read.csv (....) highf0 <-read.csv(....) lowf0$utt<-''low f0'' mediumf0$utt<-''medium f0'' highf0$utt<-''high f0'' histogram<-rbind(lowf0,mediumf0,highf0) ggplot(histogram, aes(f0, fill = utt)) + geom_histogram(alpha = 0.2)

Gracias de antemano por cualquier consejo útil!


Tu código actual:

ggplot(histogram, aes(f0, fill = utt)) + geom_histogram(alpha = 0.2)

le está diciendo a ggplot que construya un histograma usando todos los valores en f0 y luego coloree las barras de este único histograma de acuerdo con la variable utt .

Lo que quiere en su lugar es crear tres histogramas separados, con mezcla alfa para que sean visibles entre sí. Entonces, probablemente desee utilizar tres llamadas separadas a geom_histogram , donde cada una obtiene su propio marco de datos y relleno:

ggplot(histogram, aes(f0)) + geom_histogram(data = lowf0, fill = "red", alpha = 0.2) + geom_histogram(data = mediumf0, fill = "blue", alpha = 0.2) + geom_histogram(data = highf0, fill = "green", alpha = 0.2) +

Aquí hay un ejemplo concreto con algunos resultados:

dat <- data.frame(xx = c(runif(100,20,50),runif(100,40,80),runif(100,0,30)),yy = rep(letters[1:3],each = 100)) ggplot(dat,aes(x=xx)) + geom_histogram(data=subset(dat,yy == ''a''),fill = "red", alpha = 0.2) + geom_histogram(data=subset(dat,yy == ''b''),fill = "blue", alpha = 0.2) + geom_histogram(data=subset(dat,yy == ''c''),fill = "green", alpha = 0.2)

que produce algo como esto:

Editado para corregir errores tipográficos; Querías llenar, no color.


Utilizando datos de muestra de @ joran,

ggplot(dat, aes(x=xx, fill=yy)) + geom_histogram(alpha=0.2, position="identity")

tenga en cuenta que la posición predeterminada de geom_histogram es "pila".

ver "ajuste de posición" de esta página:

docs.ggplot2.org/current/geom_histogram.html