Hadley, Thank you again for your suggestion. I am going with the second solution. It appears to have a consistent bar width and helps to illustrate when data is not present within a certain bin. One other silly question - how in the world do I get the x-axis label to "not" show up? I want the x-label, but not the x-axis to appear, e.g. for the example below the not to see the "Rural Feamale", "Rural Male", ... that are on the lower x-axis? Thank you again for your help.
--- On Mon, 2/2/09, hadley wickham <h.wick...@gmail.com> wrote: From: hadley wickham <h.wick...@gmail.com> Subject: Re: overlapping bars on "dodge" ggplot histogram - can it be fixed? To: jasonkrup...@yahoo.com Cc: R-help@r-project.org Date: Monday, February 2, 2009, 8:46 PM Hi Jason, I can't see anyway to do this completely within in ggplot. And it's not easy to do the data processing yourself. Here's one attempt that almost works: counts <- ddply(VADeaths_flat_df, .(round_any(Data, 20), Person), nrow) names(counts) <- c("bin", "person", "n") qplot(bin, n, data = counts, fill = person, geom="bar", stat ="identity", position="dodge") Or maybe: counts <- ddply(VADeaths_flat_df, .(cut(Data, breaks=fullseq(range(Data), 20)), Person), nrow) names(counts) <- c("bin", "person", "n") qplot(person, n, data = counts, fill = person, geom="bar", stat ="identity", width = 0.9) + facet_grid(. ~ bin) + opts(axis.text.x = theme_text(angle = 45, hjust = 1, colour = "grey60")) Hadley On Mon, Feb 2, 2009 at 8:32 PM, Jason Rupert <jasonkrup...@yahoo.com> wrote: > Using the following code to have a little separation between the individual > bins: > > VADeaths_flat_df = stack(as.data.frame(VADeaths)) > names(VADeaths_flat_df) = c('Data','Person') > ggplot(VADeaths_flat_df, aes(Data, fill = Person)) + > geom_bar(position=position_dodge(width =(15)), binwidth=20) > > The result shows the bars overlapping. > > Is there any way to fix it by reducing the bar sizes? > > Thanks again. > > --- On Mon, 2/2/09, hadley wickham <h.wick...@gmail.com> wrote: > > From: hadley wickham <h.wick...@gmail.com> > Subject: Re: [R] Broke ggplot... > To: jasonkrup...@yahoo.com > Cc: R-help@r-project.org > Date: Monday, February 2, 2009, 5:49 PM > > On Mon, Feb 2, 2009 at 5:41 PM, Jason > Rupert <jasonkrup...@yahoo.com> > wrote: >> It appears I broke ggplot in my script, but that maybe it is because the > caffeine has worn off or maybe it is late in the day. I thought I was > beginning to understand ggplot, but I have encountered a silly little issue. >> >> For some reason the following does not produce a histogram with fill due > to the Person's characteristics: >> (Note that VADeaths_flat_df$Data works fine...) >> >> >> VADeaths_df<-data.frame(VADeaths) > ... > > You can do this a bit more easily with: > > VADeaths_flat_df <- melt(VADeaths) > names(VADeaths_flat_df) <- c("Age", "Person", > "Data") > >> bin_size<-15.0 >> ggplot(VADeaths_flat_df, aes(x = factor(Data), fill = factor(Person))) + > geom_bar(position=position_dodge(width =(20)), binwidth=20) >> # or >> ggplot(VADeaths_flat_df, aes(x=factor(Data))) > + > geom_histogram(binwidth=20) > > Those plots look fine to me (well they're what I'd expect from the > definition), but I'd think you'd want > > ggplot(VADeaths_flat_df, aes(Data, fill = Person)) + > geom_histogram(binwidth=20) > > or maybe > > ggplot(VADeaths_flat_df, aes(Person, weight = Data)) + geom_bar() > ggplot(VADeaths_flat_df, aes(Person, weight = Data, fill = Age)) + > geom_bar() > > Hadley > > -- > http://had.co.nz/ > > -- http://had.co.nz/ [[alternative HTML version deleted]]
______________________________________________ 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.