On Oct 6, 2010, at 5:19 PM, Morten wrote:
Hi all
I have a large dataframe with (among others) a categorical variable
of 52
levels and would like to create a barplot with the bars ordered in
decreasing frequency of the levels. I belive it is referred to as a
pareto
plot.
Consider a subset where I keep only the categorical variable in
question.
# Example:
df = data.frame(v1=v1) v1 = c("aa", "cc", "bb", "bb", "cc", "bb")
# How can I tell ggplot to sort the bars?
I seem to remember that sorting the levels is the way this has been
answered in the past for ggplot and ggplot2. So table() "v1" and then
reverse:
> v2 <- factor(v1, level=names(table(v1))[rev(order(table(v1)))] )
> v2
[1] aa cc bb bb cc bb
Levels: bb cc aa
# First bar = "bb" (3), second bar "cc" (2) and third bar "aa" (1)
# with 52 levels in the real data frame (many with equal counts)
# and other similar variables, I hope it is possible to script this
efficiently
ggplot(df) + geom_bar(aes(v1))
Substituting v2 for v1 in that code seemed to do the trick in ggplot2.
Thank you in advance
Morten
--
View this message in context:
http://r.789695.n4.nabble.com/ggplot2-Pareto-plot-Barplot-in-decreasing-frequency-tp2965796p2965796.html
Sent from the R help mailing list archive at Nabble.com.
______________________________________________
R-help@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.
David Winsemius, MD
West Hartford, CT
______________________________________________
R-help@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.