Fraction of pull requests to Octokit.rb merged 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).
Data pulled from the GitHub API:
Fraction of pull requests to Octokit.rb merged 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).
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_merge_fraction.tsv", function(error, data) { | |
data.forEach(function(d) { | |
d.date = parseDate(d.date); | |
d.unix_date = +d.unix_date; | |
d.merged_count = +d.merged_count; | |
d.not_merged_count = +d.not_merged_count; | |
d.count = +d.count; | |
d.merge_fraction = +d.merge_fraction; | |
}); | |
x.domain(d3.extent(data, function(d) { return d.date; })); | |
y.domain(d3.extent(data, function(d) { return d.merge_fraction; })); | |
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("Merge 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.merge_fraction); }) | |
.append("svg:title") | |
.text(function(d) { return d.count; }); | |
}); | |
</script> |
date | unix_date | merged_count | not_merged_count | count | merge_fraction | |
---|---|---|---|---|---|---|
2010-09-01 | 1283299200000 | 0 | 1 | 1 | 0.0 | |
2010-10-01 | 1285891200000 | 0 | 2 | 2 | 0.0 | |
2011-01-01 | 1293840000000 | 3 | 2 | 5 | 0.6 | |
2011-04-01 | 1301616000000 | 3 | 1 | 4 | 0.75 | |
2011-05-01 | 1304208000000 | 5 | 2 | 7 | 0.7142857142857143 | |
2011-06-01 | 1306886400000 | 4 | 1 | 5 | 0.8 | |
2011-07-01 | 1309478400000 | 5 | 0 | 5 | 1.0 | |
2011-08-01 | 1312156800000 | 2 | 0 | 2 | 1.0 | |
2011-09-01 | 1314835200000 | 2 | 0 | 2 | 1.0 | |
2011-10-01 | 1317427200000 | 1 | 0 | 1 | 1.0 | |
2011-11-01 | 1320105600000 | 3 | 0 | 3 | 1.0 | |
2012-01-01 | 1325376000000 | 4 | 1 | 5 | 0.8 | |
2012-02-01 | 1328054400000 | 3 | 1 | 4 | 0.75 | |
2012-03-01 | 1330560000000 | 1 | 1 | 2 | 0.5 | |
2012-04-01 | 1333238400000 | 1 | 0 | 1 | 1.0 | |
2012-05-01 | 1335830400000 | 11 | 0 | 11 | 1.0 | |
2012-06-01 | 1338508800000 | 9 | 0 | 9 | 1.0 | |
2012-07-01 | 1341100800000 | 2 | 0 | 2 | 1.0 | |
2012-08-01 | 1343779200000 | 4 | 1 | 5 | 0.8 | |
2012-09-01 | 1346457600000 | 7 | 1 | 8 | 0.875 | |
2012-10-01 | 1349049600000 | 15 | 9 | 24 | 0.625 | |
2012-11-01 | 1351728000000 | 3 | 1 | 4 | 0.75 | |
2012-12-01 | 1354320000000 | 7 | 3 | 10 | 0.7 | |
2013-01-01 | 1356998400000 | 2 | 0 | 2 | 1.0 | |
2013-02-01 | 1359676800000 | 13 | 1 | 14 | 0.9285714285714286 | |
2013-03-01 | 1362096000000 | 1 | 5 | 6 | 0.16666666666666666 | |
2013-04-01 | 1364774400000 | 3 | 2 | 5 | 0.6 | |
2013-05-01 | 1367366400000 | 4 | 1 | 5 | 0.8 | |
2013-06-01 | 1370044800000 | 9 | 8 | 17 | 0.5294117647058824 | |
2013-07-01 | 1372636800000 | 0 | 1 | 1 | 0.0 | |
2013-08-01 | 1375315200000 | 7 | 4 | 11 | 0.6363636363636364 | |
2013-09-01 | 1377993600000 | 7 | 2 | 9 | 0.7777777777777778 | |
2013-10-01 | 1380585600000 | 7 | 1 | 8 | 0.875 | |
2013-11-01 | 1383264000000 | 7 | 1 | 8 | 0.875 | |
2013-12-01 | 1385856000000 | 35 | 3 | 38 | 0.9210526315789473 | |
2014-01-01 | 1388534400000 | 8 | 9 | 17 | 0.47058823529411764 |