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, se ven bastante cortados.
Cuando hago gráficos de densidad, se ve perfecto: cada curva está rodeada por una línea de marco negra, y los colores se ven diferentes donde las curvas se superponen.
¿Alguien puede decirme si se puede lograr algo similar con los histogramas de 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)
Respuestas:
Tu código actual:
le dice
ggplot
a construir un histograma usando todos los valoresf0
y luego colorear las barras de este histograma individual de acuerdo con la variableutt
.En cambio, lo que desea es crear tres histogramas separados, con una combinación alfa para que sean visibles entre sí. Por lo tanto, es probable que desee utilizar tres llamadas separadas para
geom_histogram
, donde cada uno obtiene su propio marco de datos y relleno:Aquí hay un ejemplo concreto con algo de salida:
que produce algo como esto:
Editado para corregir errores tipográficos; Querías rellenar, no colorear.
fuente
scale_fill_manual()
.Usando los datos de muestra de @ joran,
tenga en cuenta que la posición predeterminada de
geom_histogram
es "apilar".ver "ajuste de posición" de esta página:
docs.ggplot2.org/current/geom_histogram.html
fuente
position = 'identity'
no es solo una respuesta más fácil de leer, se gela mejor con tramas más complicadas, como llamadas mixtas aaes()
yaes_string()
.scale_fill_manual()
. Esta función también se puede utilizar para modificar los colores en los histogramas.fill
sea un factor.Si bien solo se requieren unas pocas líneas para trazar histogramas múltiples / superpuestos en ggplot2, los resultados no siempre son satisfactorios. Debe haber un uso adecuado de los bordes y la coloración para garantizar que el ojo pueda diferenciar entre histogramas .
Las siguientes funciones equilibran los colores del borde, las opacidades y los gráficos de densidad superpuestos para permitir al espectador diferenciar entre distribuciones .
Histograma único :
Múltiple histograma :
Uso :
Simplemente pase su marco de datos a las funciones anteriores junto con los argumentos deseados:
El parámetro adicional en plot_multi_histogram es el nombre de la columna que contiene las etiquetas de categoría.
Podemos ver esto más dramáticamente creando un marco de datos con muchos medios de distribución diferentes :
Pasando el marco de datos como antes (y ampliando el gráfico usando las opciones):
fuente