Superposición de histogtwigs con ggplot2 en R

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

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: Diagtwig de densidad

¿Puede alguien decirme si se puede lograr algo similar con los histogtwigs 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 histogtwig usando todos los valores en f0 y luego coloree las barras de este único histogtwig de acuerdo con la variable utt .

Lo que quiere en su lugar es crear tres histogtwigs 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 dataframe 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:

enter image description here

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 “stack”.

ver “ajuste de posición” de esta página:

docs.ggplot2.org/current/geom_histogram.html