3

I have created an equal area histogram using histogram() in the Lattice, however, I can't seem to find a way to extract the values in the 20 equal are sized bins. Any suggestions? I've also looked into using ggplot2, but I can't create equal area sized bins while having the capability of extracting the data using ggplot_build. Here's an example:

library(lattice)

cell <- 1:20

psi <- rnorm(1:20)

histogram(df$psi,
          freq = TRUE,
          equal.width = FALSE,
          breaks = NULL,
          nint = 20)

Equal Area Histogram

As you can see in the figure, an equal area histogram is generated, but now I'd like to know which values from df$psi are within each bin of the histogram. I've tried assigning the plot to a new variable dfhist <- hist() and then inspecting the new variable dfhist$ yet it doesn't appear as though the results for each bin are stored anywhere. Thanks for your time.

Matt
  • 153
  • 1
  • 9
  • Including a [minimal reproducible example](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) in your question will increase your chances of getting an answer. – Samuel Nov 10 '17 at 19:41

1 Answers1

1

The values are in the panel.args[[1]]$x of your plot called for example p like this:

library(lattice)
cell <- 1:20
psi <- rnorm(1:20)
df <- data.frame(cell = cell,
                 psi = psi)

p <- lattice::histogram(df$psi,
          freq = TRUE,
          equal.width = FALSE,
          breaks = NULL,
          nint = 20)

p$panel.args[[1]]$x
#>  [1]  0.57126799  0.52931270  1.09610583  0.40210029 -0.51261307 -1.47656641
#>  [7] -1.15286025 -1.62896968 -0.41758147  0.46671218  2.54717967 -1.08131256
#> [13] -0.03050443 -0.25765653  1.60843681  1.43767274  1.72095174 -0.21045430
#> [19]  0.04033122 -0.38105514

Created on 2022-08-25 with reprex v2.0.2

Quinten
  • 35,235
  • 5
  • 20
  • 53