[R] how to make a histogram with percentage on top of each bar?
Mohan Radhakrishnan
mohanr at fss.co.in
Fri Jun 22 12:03:53 CEST 2012
Hi,
Stackoverflow had an example. Forgot the contributor's name but it shows percentages at the top. I use it as it is as I am not the expert.
png("Histogram.png")
pdata<-read.csv("histogram.csv",header=T)
histPercent <- function(x, ...) {
H <- hist(pdata$y, plot = FALSE)
H$density <- with(H, 100 * density* diff(breaks)[1])
labs <- paste(round(H$density), "%", sep="")
plot(H, freq = FALSE, labels = labs, ylim=c(0, 1.08*max(H$density)),...)
}
histPercent(pdata$y, col="gray", xlab="Measured Values", main="Histogram Bytes vs Time")
graphics.off()
Thanks,
Mohan
-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Deepayan Sarkar
Sent: Friday, June 22, 2012 1:37 PM
To: york8866
Cc: r-help at r-project.org
Subject: Re: [R] how to make a histogram with percentage on top of each bar?
On Thu, Jun 21, 2012 at 10:56 PM, york8866 <yu_york at hotmail.com> wrote:
> I have a dataset like the following:
> ID DV
> 1 0.868576818
> 2 0.337120116
> 3 0.029233775
> 4 0.719783525
> 5 0.976631182
> 6 0.672941605
> 7 0.13239462
> 8 0.99936475
> 9 0.91540604
> 10 0.545686514
>
> to get a histogram with y axis as percentage, I wrote the following code"
> library(lattice)
> histogram(data)
>
> now , how to input the percentage and cumulative percentage on top of each
> bar?
You will need a custom panel function, along the lines of
mypanel <-
function(x, breaks, nint = round(log2(length(x)) + 1), ...)
{
if (missing(breaks))
breaks <- do.breaks(range(x, finite = TRUE), nint)
panel.histogram(x, breaks = breaks, ...)
h <- hist(x, breaks = breaks, plot = FALSE)
breaks <- h$breaks
nb <- length(breaks)
yy <- 100 * h$counts / length(x)
panel.text(x = (breaks[-1] + breaks[-nb])/2, y = yy,
labels = round(cumsum(yy), 2), pos = 3)
}
histogram(data, panel = mypanel)
-Deepayan
______________________________________________
R-help at r-project.org mailing list
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.
DISCLAIMER:\ ===============...{{dropped:30}}
More information about the R-help
mailing list