Fraction of pull requests to Linguist merged over time (grouped by month) that are collaborative. 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("linguist_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 | |
---|---|---|---|---|---|---|
2011-06-01 | 1306886400000 | 1 | 12 | 13 | 0.07692307692307693 | |
2011-07-01 | 1309478400000 | 9 | 21 | 30 | 0.3 | |
2011-08-01 | 1312156800000 | 1 | 9 | 10 | 0.1 | |
2011-09-01 | 1314835200000 | 1 | 8 | 9 | 0.1111111111111111 | |
2011-10-01 | 1317427200000 | 0 | 5 | 5 | 0.0 | |
2011-11-01 | 1320105600000 | 0 | 7 | 7 | 0.0 | |
2011-12-01 | 1322697600000 | 1 | 8 | 9 | 0.1111111111111111 | |
2012-01-01 | 1325376000000 | 1 | 5 | 6 | 0.16666666666666666 | |
2012-02-01 | 1328054400000 | 2 | 14 | 16 | 0.125 | |
2012-03-01 | 1330560000000 | 9 | 7 | 16 | 0.5625 | |
2012-04-01 | 1333238400000 | 4 | 6 | 10 | 0.4 | |
2012-05-01 | 1335830400000 | 2 | 7 | 9 | 0.2222222222222222 | |
2012-06-01 | 1338508800000 | 4 | 9 | 13 | 0.3076923076923077 | |
2012-07-01 | 1341100800000 | 3 | 13 | 16 | 0.1875 | |
2012-08-01 | 1343779200000 | 12 | 13 | 25 | 0.48 | |
2012-09-01 | 1346457600000 | 5 | 11 | 16 | 0.3125 | |
2012-10-01 | 1349049600000 | 4 | 10 | 14 | 0.2857142857142857 | |
2012-11-01 | 1351728000000 | 5 | 6 | 11 | 0.45454545454545453 | |
2012-12-01 | 1354320000000 | 9 | 8 | 17 | 0.5294117647058824 | |
2013-01-01 | 1356998400000 | 16 | 15 | 31 | 0.5161290322580645 | |
2013-02-01 | 1359676800000 | 10 | 26 | 36 | 0.2777777777777778 | |
2013-03-01 | 1362096000000 | 12 | 19 | 31 | 0.3870967741935484 | |
2013-04-01 | 1364774400000 | 5 | 20 | 25 | 0.2 | |
2013-05-01 | 1367366400000 | 2 | 16 | 18 | 0.1111111111111111 | |
2013-06-01 | 1370044800000 | 6 | 13 | 19 | 0.3157894736842105 | |
2013-07-01 | 1372636800000 | 11 | 20 | 31 | 0.3548387096774194 | |
2013-08-01 | 1375315200000 | 8 | 23 | 31 | 0.25806451612903225 | |
2013-09-01 | 1377993600000 | 11 | 15 | 26 | 0.4230769230769231 | |
2013-10-01 | 1380585600000 | 13 | 19 | 32 | 0.40625 | |
2013-11-01 | 1383264000000 | 10 | 24 | 34 | 0.29411764705882354 | |
2013-12-01 | 1385856000000 | 22 | 38 | 60 | 0.36666666666666664 | |
2014-01-01 | 1388534400000 | 11 | 15 | 26 | 0.4230769230769231 |