############################################################### ### Created by: Sean Anderson, 2009, Diabolo.ca ### Contact: sean "at" diabolo "dot" ca ### Created: Sun 18 Oct 2009 11:07:51 AM ADT ### Last modified: Sun 18 Oct 2009 01:01:10 PM ADT ### Purpose: Evaluate diablo preferences over the last 5 ### years from the diabolo.ca diabolo polls. ############################################################### ## read in data: d <- read.csv("http://diabolo.ca/analysis/diabolos.csv", na.strings=" NA") d.names <- as.character(d[,1]) d <- as.data.frame(t(d[,-1])) names(d) <- d.names d <- d[ ,-c(7, 9, 10, 11, 12)] # ignoring these minor diabolos ## calculate percent: d.perc <-d/apply(d, 1, function(x){sum(x, na.rm = T)})*100 d.perc[is.na(d.perc)] <- 0 d.perc <- d.perc[3:1,] ## for pretty colours, not really necessary: library(RColorBrewer) colours <- brewer.pal(ncol(d.perc), "Set1") ## plot it: pdf("diabolo_preference.pdf", width = 3.5, height = 2.6) par(cex = 0.5) par(xpd = T) par(mar = c(3,4,1,7)) library(plotrix) # for the function stackpoly() stackpoly(d.perc, stack = T, xaxlab = c("2005-07", "2008", "2009"), border = "#00000040", axis4 = F, ylim = c(0, 100), col = colours, ylab = "Percent") fudge<-c(9, 9.5, 2.1, 2.5, 1.3, 0.35, -0.1) # adjust text locations for (i in 1:ncol(d.perc)){ text(3.02, cumsum(as.numeric(d.perc[3,]) - fudge[i])[i], labels = names(d.perc)[i], cex = 0.92, pos = 4) } dev.off()