Like snowflakes, no two cards are likely to be identical, so try it a few times :)
Lots of options for viewing the R code:
1) Run it automatically by just using the following few lines of R code. Probably the easiest way, provided you've installed RCurl: it allows you to directly run the github code from its url.
install.packages("RCurl")
2) Go to https://gist.github.com/cmtucker/c591e868c76de1ac81e6 and access directly. You can download the file directly ("download gist") or hit "raw" and copy/paste.
3) Copy and paste the code below.
library(RCurl)
options(RCurlOptions = list(verbose = FALSE, capath = system.file("CurlSSL", "cacert.pem", package = "RCurl"), ssl.verifypeer = FALSE))
#this seems necessary for the Windows people only?
#
eval(expr = parse(text = getURL("https://gist.githubusercontent.com/cmtucker/c591e868c76de1ac81e6/raw/ea3581a2d7f10810023529c7046edb40f099cbb3/snowflakeCode")))
options(RCurlOptions = list(verbose = FALSE, capath = system.file("CurlSSL", "cacert.pem", package = "RCurl"), ssl.verifypeer = FALSE))
#this seems necessary for the Windows people only?
#
eval(expr = parse(text = getURL("https://gist.githubusercontent.com/cmtucker/c591e868c76de1ac81e6/raw/ea3581a2d7f10810023529c7046edb40f099cbb3/snowflakeCode")))
2) Go to https://gist.github.com/cmtucker/c591e868c76de1ac81e6 and access directly. You can download the file directly ("download gist") or hit "raw" and copy/paste.
3) Copy and paste the code below.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
if( ! require( "circlize" , character.only = TRUE ) ){ | |
# If package was not able to be loaded then re-install | |
install.packages( "circlize" , dependencies = TRUE ) | |
# Load package after installing | |
require( "circlize" , character.only = TRUE ) | |
} | |
rm(list=ls()) | |
####Start | |
dev.new <- function(width = 5, height = 5){ | |
platform <- sessionInfo()$platform | |
if (grepl("linux",platform)) { | |
x11(width=width, height=height) | |
}else{ | |
if (grepl("pc",platform)) { | |
windows(width=width, height=height) | |
}else{ | |
if (grepl("w32",platform)) { | |
windows(width=width, height=height) | |
}else{ | |
if (grepl("apple", platform)){ | |
quartz(width=width, height=height)} }}}} | |
dev.new(7, 7) | |
par(mfrow=c(2,2),mar=c(1,1,1,1),bg=sample(c("#FFFAFA","#F8FFFF","#F5FFF9"),1)) | |
for(z in 1:4){ | |
##Random variables | |
p=sample(c(0,2),1) | |
s1 <- sample(c(4,6,8),1) | |
t <- s1*sample(6:8,1) | |
totals <- rep(80, t) | |
arms <- sample(c(1,2,2,3,3,4),1) | |
start_ang <- as.numeric(sample(seq(from=0,to=360), 1)) | |
#cols | |
flakecols <- c("#B0C4DE", "#CDC5BF", "#FFF9B9", "#E6E6FA", "#CCE5E5", "#F9E4B9", "#FFE1DE", "#FFFFF0", "#6a7374") | |
cols <- sample(flakecols, 3) | |
#data | |
df1 <- data.frame(order=1:t, region=1:t, | |
rcol = rep(cols,t)[t], | |
lcol = "#4c4c4c", | |
stringsAsFactors=FALSE) | |
df1$xmin <- 0 | |
df1$xmax <- totals | |
##Plot | |
circos.clear() | |
circos.par(cell.padding=c(0,0,0,0), track.margin=c(0.0,0.0), start.degree=start_ang, gap.degree=sample(c(0,5),1)) | |
circos.initialize(factors = df1$region, xlim = cbind(df1$xmin, df1$xmax)) | |
circos.trackPlotRegion(ylim = c(0, 1), factors = df1$region, track.height=0.01, | |
panel.fun = function(x, y) { | |
name = get.cell.meta.data("sector.index") | |
i = get.cell.meta.data("sector.numeric.index") | |
xlim = get.cell.meta.data("xlim") | |
ylim = get.cell.meta.data("ylim") | |
circos.rect(xleft=xlim[1], ybottom=ylim[1], xright=xlim[2], ytop=ylim[2], col = df1$rcol[i], lwd=0.05) | |
}) | |
index1 <- c(0,0,0,0,0,seq(1:t),0,0,0,0,0) | |
index2 <- c(t-4,t-3,t-2,t-1,t,seq(1:t),1,2,3,4,5) | |
for(m in 0:(s1-1)){ | |
aa <- m*t/s1+1 | |
bb <- ifelse((m*t/s1+1+t/2)>t,(m*t/s1+1+t/2)-t,(m*t/s1+1+t/2)) | |
circos.link(sector.index1=df1$region[aa], point1=c(25,27), sector.index2=df1$region[bb], point2=c(4, 5), col = cols[1], border="#4c4c4c", lwd=0.25, w=-0.05) | |
circos.link(sector.index1=df1$region[aa], point1=c(4, 5), sector.index2=df1$region[bb], point2=c(25, 27), col = cols[1], border="#4c4c4c", lwd=0.25, w=-0.05) | |
circos.link(sector.index1=df1$region[aa], point1=c(10,20), sector.index2=df1$region[aa], point2=c(10,20), col = cols[1], border="#4c4c4c", h=-0.25, lwd=0.25) | |
circos.link(sector.index1=df1$region[bb], point1=c(10,20), sector.index2=df1$region[bb], point2=c(10,20), col = cols[1], border="#4c4c4c", h=-0.25, lwd=0.25) | |
for(i in 1:arms){ | |
cc <- sample(cols,1) | |
ht=runif(1, min=0.15, max=1) | |
circos.link(sector.index1=df1$region[index2[which(index1==aa)+i]], point1=c(8, 17), sector.index2=df1$region[index2[which(index1==aa)-i]], point2=c(8,17), col = cc, border="#4c4c4c", lwd=0.15, h=ht, w=1) | |
circos.link(sector.index1=df1$region[index2[which(index1==bb)+i]], point1=c(8, 17), sector.index2=df1$region[index2[which(index1==bb)-i]], point2=c(8, 17), col = cc, border="#4c4c4c", lwd=0.15, h=ht, w=1) | |
} | |
} | |
} | |
title(main="Happy Holidays 2014", outer=TRUE, cex.main=2.5, col.main="#8B0000", family="serif",sub="from the EEB & Flow",cex.sub=2,col.sub="#8B0000",line=-2) | |
## |
3 comments:
Just this morning I was wondering when we'd get our holiday caRd! :-)
I've been waiting for this post! Thanks and Happy Holidays!
Thanks to both of you :)
Post a Comment