I have a barplot using the ggplot2 library:
plot <- qplot(Date, data=cns,
geom=\"bar\", binwidth = 1,
fill=Type, facets = N
You can make new column in your data frame that contains mean value. I named it as y.int
and calculated using function ddply()
from library plyr
. Here mean value calculated only for the values where Type
is Completed
(as Requested
should be excluded).
library(plyr)
cns<-ddply(cns,.(Name),transform,y.int=mean(Days[Type=="Completed"]))
Now use geom_hline()
and new column to add lines to each facet.
plot + geom_hline(aes(yintercept=y.int))
A variant on Didzis's answer, I would make a separate data frame for the summary data that you want to display per facet.
library("plyr")
cns.annotate <- ddply(cns, .(Name), summarize, y.int=mean(Days[Type=="Completed"]))
then pass this data frame to geom_hline
.
qplot(Date, data=cns,
geom="bar", binwidth = 1,
fill=Type, facets = Name ~ .) +
geom_hline(data=cns.annotate, aes(yintercept=y.int))
or in ggplot rather than qplot syntax:
ggplot(cns, aes(x=Date)) +
geom_bar(aes(fill=Type), binwidth=1) +
geom_hline(data=cns.annotate, aes(yintercept=y.int)) +
facet_grid(Name ~ .)