Mercurial > repos > bcclaywell > argo_navis
diff bin/plot_migration_rates.R @ 0:d67268158946 draft
planemo upload commit a3f181f5f126803c654b3a66dd4e83a48f7e203b
author | bcclaywell |
---|---|
date | Mon, 12 Oct 2015 17:43:33 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/plot_migration_rates.R Mon Oct 12 17:43:33 2015 -0400 @@ -0,0 +1,60 @@ +#!/usr/bin/env Rscript + +library(argparse) +library(ggplot2) +library(gtable) + +parser <- ArgumentParser() +parser$add_argument('-b', '--brewer', help="Specify a color brewer pallete") +parser$add_argument('-c', '--color-spec', help="Specify a deme -> color CSV mapping") +parser$add_argument('-d', '--demes', help="For help with making colors consistent, always know what all the demes are") +parser$add_argument('common') +parser$add_argument('stats') +parser$add_argument('output') +args <- parser$parse_args() + +# Load shared library +source(args$common) + + +stats <- read.delim(args$stats, + stringsAsFactors=F, + colClasses=c(mean='numeric', lower='numeric', upper='numeric')) + + +# Filter out just the paired migration statistics +stats <- stats[grepl("mig", stats$statistic),] +stats <- subset(stats, statistic != "mig_all") + + +# Now let's split this up a bit into mig_from and mig_to +mig.split <- strsplit(stats$statistic, "_") +stats$mig_from <- as.character(lapply(mig.split, function(x) x[2])) +stats$mig_to <- as.character(lapply(mig.split, function(x) x[3])) + +deme.factor <- factorify.deme(stats, label='mig_from', args=args) +stats <- deme.factor$data +deme.colors <- deme.factor$colors + + +# Now for let there be plots +gg <- ggplot(stats) +gg <- gg + geom_crossbar(aes(x=mig_to, y=mean, ymin=lower, ymax=upper, fill=mig_from)) +gg <- gg + facet_grid(mig_from ~ .) +gg <- gg + scale_fill_manual(values=deme.colors, name="source deme") +#gg <- gg + scale_y_sqrt() +gg <- gg + labs(y="") +gg <- gg + theme_bw() +gg <- gg + xlab("target deme") +gg <- gg + labs(title="Migration rate comparison") + + +# Render and save output; with the right hand facet labels on the left instead... +g <- ggplotGrob(gg) +g$layout[g$layout$name == "strip-right",c("l", "r")] <- 2 +svg(args$output, width=5, height=4.3) + grid.newpage() + grid.draw(g) +dev.off() + +