Skip to content

Instantly share code, notes, and snippets.

@ganeshv
Last active August 29, 2015 14:04
Show Gist options
  • Save ganeshv/46cc526d41d16995ccdc to your computer and use it in GitHub Desktop.
Save ganeshv/46cc526d41d16995ccdc to your computer and use it in GitHub Desktop.
GDP Treemap

Countrywise GDP data for 2012 obtained from Quandl visualized using the Zoomable Treemap Template

Click a cell to zoom in. Click the orange bar at the top to zoom out.

<!DOCTYPE HTML>
<html lang="en">
<head>
<link href="http://pigshell.com/v/0.6.3-pre1/pigshell.css" rel="stylesheet"/>
</head>
<body>
<div class="pigshell">
<div class="pmain2" id="pmain2">
<!--[if lte IE 11]>
<p class="warning">Pigshell is known to work on recent (~2013-14) versions of Firefox and Chrome. It is unlikely to work on other browsers like IE and platforms like the iPad.</p>
</p>
<![endif]-->
<p id="loading" class="info">Loading kernel...</p>
</div>
</div>
<![if gte IE 11]>
<script src="http://pigshell.com/v/0.6.3-pre1/libs.js"></script>
<script src="http://pigshell.com/v/0.6.3-pre1/pigshell.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var ps = pigshell,
sorry = "Pigshell is known to work on recent (~2013-14) versions of Firefox and Chrome. It is unlikely to work on other browsers like IE and platforms like the iPad.";
if (!ps.compatible()) {
$("#pmain2").prepend("<p class='warning'>" + sorry + "</p>");
}
ps.HttpFS.defaults.tx = 'direct';
var script = ps.multiline(function() {/*
mount http://pigshell.com/v/$(uname -r)/usr/ /usr
sh -s /etc/profile
sh -s /usr/share/misc/countries.sh
# Set Quandl auth_token if you have one, leave blank for anon access
#auth_token=''
#url='http://www.quandl.com/api/v1/multisets.csv?columns='$(sjoin , ODA.$countries^_NGDPD.1)'&trim_end=2012-12-31'$"auth_token
#cat $url > world-gdp.csv
# Use a cached copy
# Process CSV, "rename" columns and read it into `gdp`
cat http://unixtheweb.com/pmedia/fun-with-quandl/world-gdp.csv | csv2js | rename -f $(sjoin , ODA.$countries^"_NGDPD - Value") -t $(sjoin , $countries) | read gdp
# Get GDP for 2012, convert from "wide" to "long" format
echo $gdp | grep -f Date 2012 | reshape -c $(sjoin , $countries) -f name -v value | jf 'x.value = Math.round(+x.value), x' | grep -e '!isNaN(x.value)' | read gdp12
cat /usr/share/misc/countries.json | to text | jf 'JSON.parse(x)'| rename -f name -t key | read cdata
join -e 'x.name === y.cca3' ${echo $gdp12} ${echo $cdata} | read joined
load http://d3js.org/d3.v3.min.js
echo $joined | jf -g 'd3.nest().key(function(d) { return d.region; }).key(function(d) { return d.subregion; }).entries(x)' | iframe -o title="2012 GDP at Current Prices (billion USD)",rootname="World" -g 'http://bl.ocks.org/ganeshv/raw/6a8e9ada3ab7f2d88022/#wait'
*/});
ps.init({rooturi: 'http://pigshell.com/v/0.6.3-pre1/root.tar',
embedded: true}, ps.hef('#pmain2', function() {
var p = ps.popen("ish -N ish1", {stdout: "#pmain2"});
p.read({}, ps.hef('#pmain2', function(){}));
ps.publish('ish1', script);
}));
});
</script>
<![endif]>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment