varias superponer studio poligono normal histogramas histograma hacer graficos grafico graficas frecuencia curva con como barras r histogram frequency

superponer - Obteniendo valores de frecuencia del histograma en R



superponer graficas en r (3)

Sé cómo dibujar histogramas u otras tablas relacionadas con frecuencia / porcentaje. Pero ahora quiero saber cómo puedo obtener esos valores de frecuencia en una tabla para usar después del hecho.

Tengo un gran conjunto de datos, ahora dibujo un histograma con un ancho de conjunto establecido. Quiero extraer el valor de frecuencia (es decir, el valor en el eje y) que corresponde a cada ancho de banda y guardarlo en algún lugar.

¿Puede alguien ayudarme con esto por favor? ¡Gracias!


Desde ?hist : Value

un objeto de clase "histograma" que es una lista con componentes:

  • rompe los límites de las celdas n + 1 (= se rompe si ese fue un vector). Estas son las rupturas nominales, no con la fuzz de límite.
  • cuenta n enteros; para cada celda, el número de x [] adentro.
  • valores de densidad f ^ (x [i]), como valores de densidad estimados. Si todos (diff (breaks) == 1), son las frecuencias relativas count / n y en general satisfacen suma [i; f ^ (x [i]) (b [i + 1] -b [i])] = 1, donde b [i] = saltos [i].
  • intensidades igual que la densidad. En desuso, pero retenido por compatibilidad.
  • mids los n puntos medios de las células.
  • xname una cadena de caracteres con el nombre real de argumento x.
  • equidista lógico, que indica si las distancias entre los descansos son todas iguales.

breaks y la density proporcionan casi todo lo que necesita:

histrv<-hist(x) histrv$breaks histrv$density


En caso de que alguien ggplot esta pregunta geom_histogram en cuenta el geom_histogram de geom_histogram , tenga en cuenta que existe una forma de extraer los datos de un objeto ggplot.

La siguiente función de conveniencia genera un marco de datos con el límite inferior de cada xmin ( xmin ), el límite superior de cada xmax ( xmax ), el punto medio de cada intervalo ( x ), así como el valor de frecuencia ( y ).

## Convenience function get_hist <- function(p) { d <- ggplot_build(p)$data[[1]] data.frame(x = d$x, xmin = d$xmin, xmax = d$xmax, y = d$y) } # make a dataframe for ggplot set.seed(1) x = runif(100, 0, 10) y = cumsum(x) df <- data.frame(x = sort(x), y = y) # make geom_histogram p <- ggplot(data = df, aes(x = x)) + geom_histogram(aes(y = cumsum(..count..)), binwidth = 1, boundary = 0, color = "black", fill = "white")

Ilustración:

hist = get_hist(p) head(hist$x) ## [1] 0.5 1.5 2.5 3.5 4.5 5.5 head(hist$y) ## [1] 7 13 24 38 52 57 head(hist$xmax) ## [1] 1 2 3 4 5 6 head(hist$xmin) ## [1] 0 1 2 3 4 5

Una pregunta relacionada que respondí aquí ( histograma acumulativo con ggplot2 ).


La función hist tiene un valor de retorno (un objeto de histogram de clase):

R> res <- hist(rnorm(100)) R> res $breaks [1] -4 -3 -2 -1 0 1 2 3 4 $counts [1] 1 2 17 27 34 16 2 1 $intensities [1] 0.01 0.02 0.17 0.27 0.34 0.16 0.02 0.01 $density [1] 0.01 0.02 0.17 0.27 0.34 0.16 0.02 0.01 $mids [1] -3.5 -2.5 -1.5 -0.5 0.5 1.5 2.5 3.5 $xname [1] "rnorm(100)" $equidist [1] TRUE attr(,"class") [1] "histogram"