First of all, thanks to all who work on it for a very nice package!
I am trying to add a vertical line to a set of faceted histograms
which will show the median of the values that are plotted in the
histogram.
Example:
g1 <- ggplot(diamonds,aes(x=carat))
g1 + geom_histogram() + facet_grid(cut~color)
That is, I want the median value of carat _within each facet_ to show
up as a vertical line within that panel.
TIA!
Karin
--
Karin
--
karin....@gmail.com
ggplot(diamonds,aes(x=carat)) +
geom_histogram() +
facet_grid(cut~color)+
geom_vline(data = diamonds[diamonds$cut == "Fair" & diamonds$color == "D",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Fair" & diamonds$color == "E",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Fair" & diamonds$color == "F",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Fair" & diamonds$color == "G",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Fair" & diamonds$color == "H",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Fair" & diamonds$color == "I",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Fair" & diamonds$color == "J",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Good" & diamonds$color == "D",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Good" & diamonds$color == "E",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Good" & diamonds$color == "F",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Good" & diamonds$color == "G",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Good" & diamonds$color == "H",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Good" & diamonds$color == "I",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Good" & diamonds$color == "J",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Very Good" & diamonds$color == "D",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Very Good" & diamonds$color == "E",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Very Good" & diamonds$color == "F",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Very Good" & diamonds$color == "G",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Very Good" & diamonds$color == "H",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Very Good" & diamonds$color == "I",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Very Good" & diamonds$color == "J",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Premium" & diamonds$color == "D",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Premium" & diamonds$color == "E",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Premium" & diamonds$color == "F",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Premium" & diamonds$color == "G",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Premium" & diamonds$color == "H",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Premium" & diamonds$color == "I",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Premium" & diamonds$color == "J",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Ideal" & diamonds$color == "D",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Ideal" & diamonds$color == "E",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Ideal" & diamonds$color == "F",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Ideal" & diamonds$color == "G",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Ideal" & diamonds$color == "H",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Ideal" & diamonds$color == "I",], aes(xintercept=median(carat)), colour="red")+
geom_vline(data = diamonds[diamonds$cut == "Ideal" & diamonds$color == "J",], aes(xintercept=median(carat)), colour="red")
I just realized that you may not need the xintercept= in an aes() but it works regardless. The key is to subset the data that you give to the geom_vline() call.
HTH,
Brandon
--
You received this message because you are subscribed to the ggplot2 mailing list.
Please provide a reproducible example: http://gist.github.com/270442
To post: email ggp...@googlegroups.com
To unsubscribe: email ggplot2+u...@googlegroups.com
More options: http://groups.google.com/group/ggplot2
try this,
med.fac = ddply(diamonds, .(cut, color), function(.d)
data.frame(x=median(.d$carat)))
ggplot(diamonds,aes(x=carat)) +
geom_histogram() +
facet_grid(cut~color)+ geom_vline(data=med.fac, aes(xintercept=x))
HTH,
baptiste
Short answer: this works!
Thankyou for an incredibly fast response!
Karin
--
karin....@gmail.com