Skip to content

Graphic example

Manuel Reif edited this page Mar 7, 2014 · 9 revisions

To create some graphics, which look similar to (these ones)[http://www.statistik.at/dynamic/wcmsprod/idcplg?IdcService=GET_NATIVE_FILE&dID=152086&dDocName=073406] we use ggplot2 again. Make sure you sourced the code as in the first tutorial (packages, data and all objects are loaded/created). We are starting from this point by computing means and quantiles for the austrian data set for the supplied variables. We try to create a graphic which includes means, confidence-intervals and 0.05, 0.25, 0.75. 0.95 quantiles to somehow show significant differences and distributional information in one graphic.

g_litpm    <- svyPVpm(by= ~ GENDER_R + AGEG10LFS, svydat=sd2, pvs = LITERACY)
g_litquant <- svyPVquantile(by=~ GENDER_R + AGEG10LFS, svydat=sd2, pvs=LITERACY, quantile=c(0.05,0.25,0.75,0.95))

gall <- merge(g_litpm,g_litquant)

necn <- gsub(":","_",grep(":",colnames(gall),value=TRUE))
colnames(gall)[grep(":",colnames(gall))] <- necn 

SIZE <- 0.3
WID  <- 0.95

g1 <- ggplot(data=gall, aes(x=Group2, y=PVLIT_mean, ymin=q0.25,  ymax=q0.75,color=Group1)) 
g2 <- g1 +  geom_crossbar(aes(fill=Group1),position = position_dodge(width = WID), size=0, alpha=1) 
g2b <- g2 + geom_crossbar(aes(ymin=q0.05,  ymax=q0.95),position = position_dodge(width = WID),  size=SIZE)
g3 <- g2b + geom_crossbar(aes(ymin=PVLIT_mean - 1.96*PVLIT_mean_SE,  ymax=PVLIT_mean + 1.96*PVLIT_mean_SE),position = position_dodge(width = WID), size=SIZE, fill="white",  alpha=0.4)
g4 <- g3 + scale_fill_manual(name="Gender",values=c("blue","red")) + scale_color_manual(name="Gender",values=c("blue","red")) + coord_cartesian(ylim=c(150,400)) + xlab("") + ylab("Literacy")

print(g4)


Clone this wiki locally