On 05/01/2017 11:01 AM, Dan Abner wrote:
Hi all,
Is anyone aware of a package, function, or general R trick that would make
generating histograms like the one in the attachment easy in R (i.e.,
without manually drawing each individual horizontal line and specifying the
coordinates for a textbox for each number)?
I need to make ~12 of these for different samples of n=25, so the manual
approach would be very painful...
You can write a function to do this pretty easily. hist(...,
plot=FALSE) does all the calculations for you; you just need to write
the loop to draw the boxes. For example,
myhist <- function(x) {
histvals <- hist(x, plot = FALSE)
with(histvals, {
plot(range(breaks), range(c(0, counts)), type = "n")
for (i in seq_along(histvals$counts)) {
keep <- (breaks[i] < x & x <= breaks[i+1]) |
(i == 1 & x == breaks[1])
vals <- x[keep]
for (j in seq_along(vals)) {
rect(breaks[i], j-1, breaks[i+1], j)
text(mids[i], j-0.5, vals[j])
}
}
})
}
x <- round(rnorm(20, mean=166, sd=4))
myhist(x)
Duncan Murdoch
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.