Skip to content

Instantly share code, notes, and snippets.

@arfon
Last active August 29, 2015 13:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save arfon/8726267 to your computer and use it in GitHub Desktop.
Save arfon/8726267 to your computer and use it in GitHub Desktop.
Octokit.rb Pull Requests

Fraction of pull requests to Octokit.rb that are collaborative over time (grouped by month). The size of the dot is proportional to the number of pull requests in that time period (mouseover to see the count).

PR deemed 'collaborative' if more commits are added to a PR after the intial PR is opened.

Data pulled from the GitHub API:

<!DOCTYPE html>
<meta charset="utf-8">
<style>
body {
font: 12px sans-serif;
}
.axis path,
.axis line {
fill: none;
stroke: #000;
shape-rendering: crispEdges;
}
.dot {
stroke: red;
fill: red;
}
h1{
padding-left:25px;
}
</style>
<body>
<script src="http://d3js.org/d3.v3.js"></script>
<script>
var margin = {top: 20, right: 20, bottom: 30, left: 50},
width = 960 - margin.left - margin.right,
height = 500 - margin.top - margin.bottom;
var parseDate = d3.time.format("%Y-%m-%d").parse;
var x = d3.time.scale()
.range([0, width]);
var y = d3.scale.linear()
.range([height, 0]);
var xAxis = d3.svg.axis()
.scale(x)
.orient("bottom");
var yAxis = d3.svg.axis()
.scale(y)
.orient("left");
var svg = d3.select("body").append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
d3.tsv("octokit_collaborative_fraction.tsv", function(error, data) {
data.forEach(function(d) {
d.date = parseDate(d.date);
d.unix_date = +d.unix_date;
d.collab_count = +d.collab_count;
d.not_collab_count = +d.not_collab_count;
d.count = +d.count;
d.collab_fraction = +d.collab_fraction;
});
x.domain(d3.extent(data, function(d) { return d.date; }));
y.domain([0,0.601]);
var median_pull_count = d3.median(data, function(d) { return d.count; });
svg.append("g")
.attr("class", "x axis")
.attr("transform", "translate(0," + height + ")")
.call(xAxis);
svg.append("g")
.attr("class", "y axis")
.call(yAxis)
.append("text")
.attr("transform", "rotate(-90)")
.attr("y", 6)
.attr("dy", ".71em")
.style("text-anchor", "end")
.text("Collaborative fraction");
svg.selectAll(".dot")
.data(data)
.enter().append("circle")
.attr("class", "dot")
.attr("r", function(d) { return 3 * d.count/median_pull_count; })
.attr("cx", function(d) { return x(d.date); })
.attr("cy", function(d) { return y(d.collab_fraction); })
.append("svg:title")
.text(function(d) { return d.count; });
});
</script>
date unix_date collab_count not_collab_count count collab_fraction
2010-09-01 1283299200000 0 1 1 0.0
2010-10-01 1285891200000 0 2 2 0.0
2011-01-01 1293840000000 0 5 5 0.0
2011-04-01 1301616000000 0 4 4 0.0
2011-05-01 1304208000000 0 7 7 0.0
2011-06-01 1306886400000 3 2 5 0.6
2011-07-01 1309478400000 0 5 5 0.0
2011-08-01 1312156800000 1 1 2 0.5
2011-09-01 1314835200000 0 2 2 0.0
2011-10-01 1317427200000 0 1 1 0.0
2011-11-01 1320105600000 0 3 3 0.0
2012-01-01 1325376000000 2 3 5 0.4
2012-02-01 1328054400000 1 3 4 0.25
2012-03-01 1330560000000 0 2 2 0.0
2012-04-01 1333238400000 0 1 1 0.0
2012-05-01 1335830400000 3 8 11 0.2727272727272727
2012-06-01 1338508800000 2 7 9 0.2222222222222222
2012-07-01 1341100800000 0 2 2 0.0
2012-08-01 1343779200000 0 5 5 0.0
2012-09-01 1346457600000 1 7 8 0.125
2012-10-01 1349049600000 5 19 24 0.20833333333333334
2012-11-01 1351728000000 1 3 4 0.25
2012-12-01 1354320000000 1 9 10 0.1
2013-01-01 1356998400000 0 2 2 0.0
2013-02-01 1359676800000 3 11 14 0.21428571428571427
2013-03-01 1362096000000 0 6 6 0.0
2013-04-01 1364774400000 2 3 5 0.4
2013-05-01 1367366400000 1 4 5 0.2
2013-06-01 1370044800000 2 15 17 0.11764705882352941
2013-07-01 1372636800000 0 1 1 0.0
2013-08-01 1375315200000 1 10 11 0.09090909090909091
2013-09-01 1377993600000 4 5 9 0.4444444444444444
2013-10-01 1380585600000 2 6 8 0.25
2013-11-01 1383264000000 3 5 8 0.375
2013-12-01 1385856000000 12 26 38 0.3157894736842105
2014-01-01 1388534400000 5 12 17 0.29411764705882354
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment