[R] stacked and dodged bar graph ggplot

Jim Lemon drjimlemon at gmail.com
Fri Dec 30 23:51:29 CET 2016


Hi Robert,
I realize that this isn't in ggplot, but are you looking for something
like this?

Demog <-
data.frame(source=c(rep("Davis",4),rep("Dixon",4),rep("Winters",4)),
 group =c("Asian / Pacific Islander","Caucasian","Latinx",
 "Not Latinx","African American", "Native American", "Latinx",
 "Not Latinx","Mixed race","Other","Latinx", "Not Latinx"),
 number =c(14491, 42571, 8172, 57450, 562, 184, 7426, 10952,
 332, 1488, 3469, 3155),
 field = rep(c(rep("race",2),rep("ethnicity",2)),3))
library(plotrix)
barpos<-barp(matrix(Demog$number,ncol=3),
 col=matrix(c("lightsalmon","ivory","brown","blanchedalmond","chocolate",
 "orangered","brown","blanchedalmond","khaki","purple","brown",
 "blanchedalmond"),ncol=3),ylab="Frequency",
 names.arg=c("Davis","Dixon","Winters"))
legend(2,50000,c("Asian/Pacific Is.","Caucasian","Latinx","NonLatinx",
 "African American","Native American","Mixed race","Other"),
 fill=c("lightsalmon","ivory","brown","blanchedalmond","chocolate",
 "orangered","khaki","purple"))
mtext(rep(c("race","ethnicity"),3),side=1,line=0.3,
 at=barpos$x[c(1,4),])

Jim

On Sat, Dec 31, 2016 at 5:30 AM, Robert Lynch <robert.b.lynch at gmail.com> wrote:
> I have some census data with race and ethnicity for various towns.  I am
> trying to make a stacked bar graph where all the race data is in one
> stacked bar, and all the ethnicity data is in another.
>
> Below is a minimal reproducible sample.
>
> library("ggplot2")
>
> Demog <-
> data.frame(source=c(rep("Davis",4),rep("Dixon",4),rep("Winters",4)),
>             group =c("Asian / Pacific Islander","Caucasian","Lantinx","Not
> Latinx","African American", "Native American", "Latinx", "Not
> Latinx","Mixed race","Other","Latinx", "Not Latinx"),
>             number =c(14491, 42571, 8172, 57450, 562, 184, 7426, 10952,
> 332, 1488, 3469, 3155),
>             field = rep(c(rep("race",2),rep("ethnicity",2)),3))
>
> Demog$race <- factor(Demog$group, levels=c("Asian / Pacific Islander",
> "Caucasian", "African American", "Native American / Alaska Native",  "mixed
> race",  "other"))
> Demog$ethn <- factor(Demog$group, levels=c("Latinx","not latinx"))
> Demog$location <- factor(Demog$source, levels=c( "Dixon",
> "Winters","Davis"))
> Demog.bar1 <-ggplot(data = Demog, aes(x = location, y = number, fill =
> race))+theme_bw() +geom_bar(stat = "identity",position = "stack") +
> coord_flip()
>
> Demog.bar2 <-ggplot(data = Demog, aes(x = location, y = number, fill =
> ethn))+theme_bw() +geom_bar(stat = "identity",position = "stack") +
> coord_flip()
>
> show(Demog.bar1)
> show(Demog.bar2)
>
>
>
>
> Much thanks,
> Robert
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.



More information about the R-help mailing list