library(ggplot2) DATA <- read.csv(file.choose(), header=TRUE) DATA$GROUP <- factor(DATA$GROUP, levels=rev(c("Rated White Christians at 50","Rated White Christians between 46 and 54","Rated White Christians under 50","Rated White Christians under 25"))) DATA$FACET <- factor(DATA$FACET, levels=c("Full sample","White respondents")) ggplot(DATA, aes(100*PE, GROUP)) + facet_wrap(~FACET, ncol=2, dir="v") + geom_bar(stat="identity", position="dodge", color="black", fill="slategray3", size=0.7, width=0.7) + geom_errorbarh(aes(xmin=100*CILO, xmax=100*CIHI), height=0, size=0.7) + scale_x_continuous(name="", breaks=seq(0,100,20), limits=c(0,100), labels=scales::number_format(accuracy=1)) + geom_text(aes(x=100, label=scales::percent(PE, accuracy=1L)), position=position_dodge(width=0.7), hjust=1, size=4.5) + labs(title="% that Rated Hillary Clinton Favorable", caption="Error bars are 83.4% confidence intervals. Estimates are from weighted analyses. Ratings about\nHillary Clinton were on a four-point scale, with skips and non-responses coded as not having rated\nher favorable. Ratings about White Christians were on a 0-to-100 scale. Data source: 2019 wave\nof the Democracy Fund Voter Study Group VOTER Survey.") + theme( plot.background=element_rect(fill="white"), strip.background=element_rect(color="black", fill="black"), strip.text.x=element_text(color="white", face="bold", size=15, margin=margin(t=7.5, b=7.5)), panel.grid.major.x=element_blank(), panel.grid.major.y=element_blank(), panel.grid.minor.x=element_blank(), panel.grid.minor.y=element_blank(), panel.background=element_rect(fill="gray90", color="black", size=0.5, linetype="solid"), panel.border=element_rect(fill=NA, color="black", linetype="solid", size=1.5), panel.spacing.x=unit(1, "lines"), panel.spacing.y=unit(1, "lines"), axis.title.y=element_blank(), axis.title.x=element_text(size=12, color="black"), axis.ticks.y=element_blank(), axis.ticks.x=element_blank(), axis.text.x=element_text(size=12, color="black", vjust=-1), axis.text.y=element_text(size=12, color="black", margin=margin(r=10)), plot.margin=unit(c(0.5,0.5,0.5,0.5),"cm"), plot.title=element_text(face="bold", margin=margin(t=0, b=13), size=15, hjust=0.5), plot.subtitle=element_text(hjust=0.5, size=12), plot.caption=element_text(hjust=0, size=9)) ggsave(file="D:R plot WhChr.svg", width=9.25, height=4) ggsave(file="D:R plot WhChr.jpg", width=9.25, height=4)