I have a time-series that I’m examining for data heterogeneity, and wish to explain some important facets of this to some data analysts. I have a density histogram overlayed by a KDE plot (in order to see both plots obviously). However the original data are counts, and I want to place the count values as labels above the histogram bars.
Here is some code:
$tix_hist <- ggplot(tix, aes(x=Tix_Cnt))
+ geom_histogram(aes(y = ..density..), colour="black", fill="orange", binwidth=50)
+ xlab("Bin") + ylab("Density") + geom_density(aes(y = ..density..),fill=NA, colour="blue")
+ scale_x_continuous(breaks=seq(1,1700,by=100))
tix_hist + opts(
title = "Ticket Density To-Date",
plot.title = theme_text(face="bold", size=18),
axis.title.x = theme_text(face="bold", size=16),
axis.title.y = theme_text(face="bold", size=14, angle=90),
axis.text.x = theme_text(face="bold", size=14),
axis.text.y = theme_text(face="bold", size=14)
)
I thought about extrapolating count values using KDE bandwidth, etc, . Is it possible to data frame the numeric output of a ggplot frequency histogram and add this as a ‘layer’. I’m not savvy on the layer() function yet, but any ideas would be helpful. Many thanks!
if you want the y-axis to show the
bin_countnumber, at the same time, adding a density curve on this histogram,you might use
geom_histogram()first and record thebinwidthvalue! (this is very important!), next add a layer ofgeom_density()to show the fitting curve.if you don’t know how to choose the
binwidthvalue, you can just calculate:(this is exactly what
geom_histogramdoes in default.)The code is given below:
(suppose the
binwithvalue you just calculated is 0.001)