tutorial - superponer graficas en r ggplot
Normalizar el eje y en histogramas en R ggplot en proporciĆ³n (2)
Tengo una pregunta muy simple que me hace golpear mi cabeza en la pared.
Me gustaría escalar el eje y de mi histograma para reflejar la proporción (de 0 a 1) que compone cada cubo, en lugar de tener el área de las barras suma a 1, usando y = densidad. o teniendo la barra más alta sea 1, como y = .. ncount .. does.
Mi entrada es una lista de nombres y valores, formateada como sigue:
name value
A 0.0000354
B 0.00768
C 0.00309
D 0.000123
Uno de mis intentos fallidos:
library(ggplot2)
mydataframe < read.delim(mydata)
ggplot(mydataframe, aes(x = value)) +
geom_histogram(aes(x=value,y=..density..))
Esto me da un histograma con el área 1, pero alturas de 2000 y 1000:
y y = .. ncount .. me da un histograma con la barra más alta 1.0 y el resto a escala:
pero me gustaría que la primera barra tenga una altura de 0.5, y las otras dos 0.25.
R tampoco reconoce estos usos de scale_y_continuous.
scale_y_continuous(formatter="percent")
scale_y_continuous(labels = percent)
scale_y_continuous(expand=c(1/(nrow(mydataframe)-1),0)
Gracias por cualquier ayuda.
A partir de ggplot2 0.9, muchas de las funciones del formateador se han movido al paquete de escalas, incluido percent_format()
.
library(ggplot2)
library(scales)
mydataframe <- data.frame(name = c("A", "B", "C", "D"),
value = c(0.0000354, 0.00768, 0.00309, 0.000123))
ggplot(mydataframe) +
geom_histogram(aes(x = value, y = ..ncount..)) +
scale_y_continuous(labels = percent_format())
Tenga en cuenta que ..ncount..
hasta un máximo de 1.0, mientras que ..count..
es el recuento de contenedores sin escala.
ggplot(mydataframe, aes(x=value)) +
geom_histogram(aes(y=..count../sum(..count..)))
Lo que da: