Skip to content

Instantly share code, notes, and snippets.

@ne8il
Forked from sahrendt0/README.md
Last active December 26, 2015 08:59
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 ne8il/7126644 to your computer and use it in GitHub Desktop.
Save ne8il/7126644 to your computer and use it in GitHub Desktop.
region fruit count
GO:0000902 Hpo 1
GO:0003676 Hpo 1
GO:0003677 Hpo 3
GO:0003697 Hpo 1
GO:0003700 Hpo 1
GO:0003723 Hpo 2
GO:0003755 Hpo 1
GO:0003824 Hpo 3
GO:0003857 Hpo 1
GO:0003887 Hpo 1
GO:0003899 Hpo 1
GO:0003924 Hpo 1
GO:0003968 Hpo 1
GO:0004064 Hpo 1
GO:0004097 Hpo 1
GO:0004180 Hpo 1
GO:0004181 Hpo 1
GO:0004197 Hpo 1
GO:0004222 Hpo 3
GO:0004252 Hpo 3
GO:0004375 Hpo 1
GO:0004553 Hpo 3
GO:0004579 Hpo 1
GO:0004601 Hpo 1
GO:0004616 Hpo 1
GO:0004659 Hpo 1
GO:0004672 Hpo 2
GO:0004806 Hpo 1
GO:0004853 Hpo 1
GO:0004930 Hpo 1
GO:0005096 Hpo 1
GO:0005097 Hpo 1
GO:0005102 Hpo 1
GO:0005198 Hpo 3
GO:0005216 Hpo 1
GO:0005219 Hpo 1
GO:0005507 Hpo 3
GO:0005509 Hpo 6
GO:0005515 Hpo 18
GO:0005524 Hpo 7
GO:0005525 Hpo 2
GO:0005576 Hpo 1
GO:0005577 Hpo 1
GO:0005578 Hpo 1
GO:0005615 Hpo 1
GO:0005622 Hpo 1
GO:0005777 Hpo 1
GO:0005783 Hpo 3
GO:0005856 Hpo 1
GO:0005885 Hpo 1
GO:0005975 Hpo 4
GO:0005976 Hpo 1
GO:0006024 Hpo 1
GO:0006098 Hpo 1
GO:0006260 Hpo 1
GO:0006270 Hpo 1
GO:0006281 Hpo 1
GO:0006351 Hpo 1
GO:0006352 Hpo 1
GO:0006355 Hpo 2
GO:0006396 Hpo 1
GO:0006457 Hpo 4
GO:0006464 Hpo 1
GO:0006468 Hpo 2
GO:0006486 Hpo 1
GO:0006505 Hpo 1
GO:0006508 Hpo 10
GO:0006546 Hpo 1
GO:0006629 Hpo 1
GO:0006631 Hpo 1
GO:0006779 Hpo 1
GO:0006810 Hpo 1
GO:0006811 Hpo 1
GO:0006812 Hpo 1
GO:0006874 Hpo 1
GO:0006886 Hpo 4
GO:0006888 Hpo 3
GO:0006914 Hpo 1
GO:0006944 Hpo 1
GO:0006950 Hpo 2
GO:0006979 Hpo 1
GO:0007165 Hpo 2
GO:0007186 Hpo 1
GO:0008061 Hpo 1
GO:0008152 Hpo 5
GO:0008168 Hpo 2
GO:0008200 Hpo 1
GO:0008233 Hpo 1
GO:0008236 Hpo 2
GO:0008270 Hpo 6
GO:0008430 Hpo 1
GO:0008474 Hpo 1
GO:0008654 Hpo 1
GO:0009058 Hpo 2
GO:0009244 Hpo 1
GO:0009405 Hpo 2
GO:0009432 Hpo 1
GO:0009878 Hpo 1
GO:0010038 Hpo 2
GO:0010508 Hpo 1
GO:0015078 Hpo 2
GO:0015095 Hpo 1
GO:0015299 Hpo 1
GO:0015693 Hpo 1
GO:0015948 Hpo 1
GO:0015979 Hpo 1
GO:0015991 Hpo 3
GO:0015992 Hpo 1
GO:0015995 Hpo 1
GO:0016020 Hpo 11
GO:0016021 Hpo 17
GO:0016032 Hpo 1
GO:0016209 Hpo 1
GO:0016246 Hpo 1
GO:0016491 Hpo 6
GO:0016616 Hpo 2
GO:0016645 Hpo 1
GO:0016746 Hpo 1
GO:0016756 Hpo 2
GO:0016758 Hpo 1
GO:0016765 Hpo 1
GO:0016779 Hpo 1
GO:0016780 Hpo 1
GO:0016787 Hpo 4
GO:0016788 Hpo 3
GO:0016810 Hpo 1
GO:0016820 Hpo 1
GO:0016851 Hpo 1
GO:0016857 Hpo 1
GO:0016887 Hpo 1
GO:0016987 Hpo 1
GO:0019028 Hpo 4
GO:0019031 Hpo 2
GO:0020037 Hpo 1
GO:0030001 Hpo 1
GO:0030127 Hpo 3
GO:0030151 Hpo 1
GO:0030168 Hpo 1
GO:0030170 Hpo 2
GO:0030255 Hpo 1
GO:0030269 Hpo 1
GO:0030674 Hpo 1
GO:0030833 Hpo 1
GO:0031227 Hpo 1
GO:0032313 Hpo 1
GO:0033178 Hpo 1
GO:0033179 Hpo 2
GO:0033227 Hpo 1
GO:0034314 Hpo 1
GO:0042597 Hpo 1
GO:0042742 Hpo 1
GO:0042765 Hpo 1
GO:0042802 Hpo 1
GO:0043086 Hpo 1
GO:0045454 Hpo 1
GO:0046034 Hpo 1
GO:0046688 Hpo 1
GO:0046813 Hpo 1
GO:0046872 Hpo 4
GO:0046873 Hpo 1
GO:0046938 Hpo 2
GO:0048037 Hpo 1
GO:0050832 Hpo 1
GO:0051033 Hpo 1
GO:0051056 Hpo 1
GO:0051082 Hpo 2
GO:0051258 Hpo 1
GO:0051287 Hpo 1
GO:0055085 Hpo 5
GO:0055114 Hpo 12
GO:0000079 Bde 1
GO:0000123 Bde 1
GO:0000124 Bde 1
GO:0000139 Bde 1
GO:0000145 Bde 1
GO:0000151 Bde 1
GO:0000155 Bde 1
GO:0000160 Bde 1
GO:0000166 Bde 2
GO:0000271 Bde 1
GO:0000276 Bde 1
GO:0000287 Bde 2
GO:0000398 Bde 2
GO:0000439 Bde 1
GO:0000445 Bde 1
GO:0000772 Bde 1
GO:0000774 Bde 1
GO:0000777 Bde 1
GO:0000795 Bde 1
GO:0000902 Bde 1
GO:0000917 Bde 1
GO:0000921 Bde 1
GO:0001104 Bde 5
GO:0001539 Bde 1
GO:0003676 Bde 4
GO:0003677 Bde 15
GO:0003700 Bde 3
GO:0003707 Bde 1
GO:0003712 Bde 1
GO:0003713 Bde 1
GO:0003723 Bde 3
GO:0003724 Bde 1
GO:0003735 Bde 3
GO:0003755 Bde 1
GO:0003756 Bde 1
GO:0003774 Bde 2
GO:0003777 Bde 1
GO:0003779 Bde 2
GO:0003824 Bde 6
GO:0003854 Bde 1
GO:0003887 Bde 1
GO:0003918 Bde 1
GO:0003924 Bde 6
GO:0003968 Bde 2
GO:0003978 Bde 1
GO:0003980 Bde 1
GO:0003989 Bde 1
GO:0004129 Bde 1
GO:0004185 Bde 2
GO:0004190 Bde 3
GO:0004197 Bde 2
GO:0004222 Bde 6
GO:0004252 Bde 5
GO:0004402 Bde 1
GO:0004435 Bde 1
GO:0004519 Bde 2
GO:0004550 Bde 1
GO:0004553 Bde 3
GO:0004555 Bde 1
GO:0004564 Bde 1
GO:0004571 Bde 1
GO:0004573 Bde 1
GO:0004575 Bde 1
GO:0004579 Bde 3
GO:0004601 Bde 1
GO:0004602 Bde 1
GO:0004656 Bde 1
GO:0004659 Bde 1
GO:0004672 Bde 2
GO:0004674 Bde 2
GO:0004784 Bde 1
GO:0004797 Bde 1
GO:0004806 Bde 1
GO:0004814 Bde 1
GO:0004828 Bde 1
GO:0004832 Bde 1
GO:0004842 Bde 1
GO:0004871 Bde 3
GO:0004930 Bde 1
GO:0005047 Bde 1
GO:0005099 Bde 1
GO:0005102 Bde 2
GO:0005129 Bde 1
GO:0005179 Bde 1
GO:0005184 Bde 1
GO:0005198 Bde 8
GO:0005215 Bde 2
GO:0005351 Bde 1
GO:0005375 Bde 1
GO:0005496 Bde 1
GO:0005506 Bde 2
GO:0005507 Bde 3
GO:0005509 Bde 8
GO:0005515 Bde 27
GO:0005524 Bde 23
GO:0005525 Bde 10
GO:0005543 Bde 2
GO:0005576 Bde 9
GO:0005577 Bde 1
GO:0005578 Bde 1
GO:0005604 Bde 1
GO:0005606 Bde 1
GO:0005615 Bde 3
GO:0005622 Bde 6
GO:0005634 Bde 20
GO:0005643 Bde 2
GO:0005672 Bde 1
GO:0005681 Bde 1
GO:0005730 Bde 1
GO:0005737 Bde 8
GO:0005741 Bde 3
GO:0005742 Bde 1
GO:0005743 Bde 1
GO:0005783 Bde 5
GO:0005785 Bde 1
GO:0005787 Bde 1
GO:0005789 Bde 6
GO:0005794 Bde 1
GO:0005840 Bde 3
GO:0005876 Bde 1
GO:0005886 Bde 1
GO:0005938 Bde 1
GO:0005940 Bde 1
GO:0005975 Bde 5
GO:0005991 Bde 1
GO:0006004 Bde 1
GO:0006006 Bde 1
GO:0006024 Bde 1
GO:0006094 Bde 1
GO:0006099 Bde 1
GO:0006165 Bde 1
GO:0006183 Bde 1
GO:0006184 Bde 2
GO:0006189 Bde 1
GO:0006228 Bde 1
GO:0006241 Bde 1
GO:0006260 Bde 2
GO:0006270 Bde 1
GO:0006289 Bde 1
GO:0006298 Bde 1
GO:0006302 Bde 1
GO:0006308 Bde 1
GO:0006310 Bde 1
GO:0006338 Bde 1
GO:0006352 Bde 2
GO:0006355 Bde 11
GO:0006357 Bde 5
GO:0006364 Bde 2
GO:0006367 Bde 1
GO:0006397 Bde 2
GO:0006402 Bde 1
GO:0006412 Bde 3
GO:0006420 Bde 1
GO:0006434 Bde 1
GO:0006438 Bde 1
GO:0006457 Bde 7
GO:0006464 Bde 1
GO:0006465 Bde 1
GO:0006468 Bde 2
GO:0006486 Bde 3
GO:0006505 Bde 1
GO:0006506 Bde 2
GO:0006508 Bde 13
GO:0006537 Bde 1
GO:0006576 Bde 1
GO:0006605 Bde 1
GO:0006606 Bde 1
GO:0006629 Bde 2
GO:0006633 Bde 1
GO:0006694 Bde 1
GO:0006730 Bde 1
GO:0006801 Bde 2
GO:0006810 Bde 6
GO:0006811 Bde 1
GO:0006812 Bde 1
GO:0006814 Bde 1
GO:0006820 Bde 1
GO:0006869 Bde 1
GO:0006886 Bde 14
GO:0006888 Bde 3
GO:0006891 Bde 2
GO:0006897 Bde 1
GO:0006904 Bde 1
GO:0006914 Bde 2
GO:0006928 Bde 1
GO:0006950 Bde 1
GO:0006955 Bde 1
GO:0006979 Bde 2
GO:0007015 Bde 1
GO:0007018 Bde 1
GO:0007049 Bde 2
GO:0007050 Bde 1
GO:0007059 Bde 1
GO:0007094 Bde 1
GO:0007130 Bde 1
GO:0007154 Bde 1
GO:0007155 Bde 2
GO:0007165 Bde 8
GO:0007186 Bde 1
GO:0007264 Bde 3
GO:0008017 Bde 1
GO:0008026 Bde 1
GO:0008033 Bde 1
GO:0008053 Bde 1
GO:0008061 Bde 1
GO:0008083 Bde 1
GO:0008093 Bde 1
GO:0008121 Bde 1
GO:0008134 Bde 1
GO:0008137 Bde 1
GO:0008152 Bde 10
GO:0008168 Bde 1
GO:0008200 Bde 1
GO:0008233 Bde 3
GO:0008236 Bde 3
GO:0008250 Bde 1
GO:0008270 Bde 8
GO:0008289 Bde 1
GO:0008409 Bde 1
GO:0008474 Bde 1
GO:0008509 Bde 1
GO:0008565 Bde 2
GO:0008643 Bde 1
GO:0008649 Bde 1
GO:0008677 Bde 1
GO:0008736 Bde 1
GO:0008772 Bde 1
GO:0008831 Bde 1
GO:0008855 Bde 1
GO:0008964 Bde 1
GO:0008982 Bde 1
GO:0009055 Bde 5
GO:0009058 Bde 2
GO:0009103 Bde 1
GO:0009166 Bde 1
GO:0009236 Bde 1
GO:0009288 Bde 5
GO:0009296 Bde 2
GO:0009306 Bde 1
GO:0009311 Bde 1
GO:0009317 Bde 1
GO:0009401 Bde 1
GO:0009405 Bde 6
GO:0009521 Bde 1
GO:0009523 Bde 1
GO:0009654 Bde 1
GO:0009755 Bde 1
GO:0009767 Bde 1
GO:0009847 Bde 1
GO:0009890 Bde 1
GO:0010508 Bde 1
GO:0015031 Bde 3
GO:0015074 Bde 1
GO:0015078 Bde 3
GO:0015299 Bde 1
GO:0015385 Bde 1
GO:0015627 Bde 1
GO:0015628 Bde 1
GO:0015930 Bde 1
GO:0015948 Bde 1
GO:0015977 Bde 2
GO:0015979 Bde 2
GO:0015986 Bde 3
GO:0015991 Bde 2
GO:0015995 Bde 1
GO:0016020 Bde 27
GO:0016021 Bde 37
GO:0016032 Bde 3
GO:0016070 Bde 1
GO:0016168 Bde 1
GO:0016192 Bde 4
GO:0016209 Bde 1
GO:0016272 Bde 2
GO:0016301 Bde 2
GO:0016459 Bde 2
GO:0016485 Bde 1
GO:0016491 Bde 9
GO:0016567 Bde 2
GO:0016573 Bde 1
GO:0016592 Bde 5
GO:0016616 Bde 1
GO:0016638 Bde 1
GO:0016651 Bde 1
GO:0016671 Bde 1
GO:0016702 Bde 1
GO:0016746 Bde 1
GO:0016755 Bde 1
GO:0016757 Bde 1
GO:0016758 Bde 3
GO:0016787 Bde 7
GO:0016788 Bde 2
GO:0016791 Bde 2
GO:0016810 Bde 1
GO:0016829 Bde 1
GO:0016851 Bde 1
GO:0016853 Bde 1
GO:0016857 Bde 1
GO:0016881 Bde 1
GO:0016887 Bde 2
GO:0016984 Bde 1
GO:0016987 Bde 1
GO:0017119 Bde 1
GO:0017124 Bde 1
GO:0018149 Bde 1
GO:0018279 Bde 2
GO:0019013 Bde 1
GO:0019028 Bde 6
GO:0019031 Bde 2
GO:0019042 Bde 1
GO:0019048 Bde 1
GO:0019082 Bde 1
GO:0019083 Bde 1
GO:0019087 Bde 2
GO:0019684 Bde 1
GO:0019867 Bde 1
GO:0019898 Bde 1
GO:0019901 Bde 1
GO:0019904 Bde 1
GO:0020037 Bde 3
GO:0022900 Bde 1
GO:0030001 Bde 2
GO:0030036 Bde 1
GO:0030117 Bde 2
GO:0030126 Bde 1
GO:0030127 Bde 3
GO:0030131 Bde 1
GO:0030155 Bde 1
GO:0030168 Bde 1
GO:0030173 Bde 1
GO:0030176 Bde 1
GO:0030246 Bde 1
GO:0030261 Bde 1
GO:0030269 Bde 1
GO:0030286 Bde 1
GO:0030288 Bde 1
GO:0030334 Bde 1
GO:0030345 Bde 1
GO:0030430 Bde 1
GO:0030436 Bde 1
GO:0030472 Bde 1
GO:0030529 Bde 1
GO:0030570 Bde 1
GO:0030674 Bde 1
GO:0030976 Bde 1
GO:0030983 Bde 1
GO:0031386 Bde 1
GO:0031514 Bde 1
GO:0031966 Bde 1
GO:0032040 Bde 1
GO:0032065 Bde 1
GO:0033178 Bde 1
GO:0033179 Bde 1
GO:0033644 Bde 1
GO:0034023 Bde 1
GO:0035091 Bde 1
GO:0035434 Bde 1
GO:0038032 Bde 1
GO:0042132 Bde 1
GO:0042147 Bde 1
GO:0042157 Bde 2
GO:0042302 Bde 1
GO:0042475 Bde 1
GO:0042597 Bde 2
GO:0042626 Bde 2
GO:0042729 Bde 1
GO:0042742 Bde 1
GO:0042765 Bde 1
GO:0042773 Bde 1
GO:0042802 Bde 1
GO:0042803 Bde 2
GO:0043064 Bde 1
GO:0043086 Bde 1
GO:0043093 Bde 1
GO:0043401 Bde 1
GO:0043515 Bde 1
GO:0043565 Bde 1
GO:0044183 Bde 1
GO:0044237 Bde 1
GO:0045226 Bde 1
GO:0045261 Bde 1
GO:0045263 Bde 1
GO:0045454 Bde 1
GO:0045502 Bde 1
GO:0045718 Bde 1
GO:0045893 Bde 1
GO:0045995 Bde 1
GO:0046688 Bde 1
GO:0046847 Bde 1
GO:0046872 Bde 4
GO:0046873 Bde 2
GO:0046933 Bde 1
GO:0046961 Bde 2
GO:0046983 Bde 1
GO:0048027 Bde 1
GO:0048193 Bde 1
GO:0048870 Bde 1
GO:0050660 Bde 2
GO:0050661 Bde 1
GO:0050662 Bde 1
GO:0050832 Bde 1
GO:0050920 Bde 1
GO:0051082 Bde 4
GO:0051087 Bde 1
GO:0051258 Bde 1
GO:0051301 Bde 1
GO:0051536 Bde 4
GO:0055085 Bde 7
GO:0055114 Bde 18
GO:0060967 Bde 1
GO:0071203 Bde 1
<html><body><h1>It works!</h1>
<!DOCTYPE html>
<meta charset="utf-8">
<style>
body {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
margin: auto;
position: relative;
width: 960px;
}
text {
font: 10px sans-serif;
}
form {
position: absolute;
right: 10px;
top: 10px;
}
input {
margin: 0 7px;
}
</style>
<form></form>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script>
var width = 960,
height = 500,
radius = Math.min(width, height) / 2;
var pie = d3.layout.pie()
.value(function(d) { return d.count; })
.sort(null);
var arc = d3.svg.arc()
.innerRadius(radius - 100)
.outerRadius(radius - 20);
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height)
.append("g")
.attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");
var path = svg.selectAll("path");
d3.tsv("data.tsv", type, function(error, data) {
data = data.filter(function(d) { return d.count > 1 });
var colorRange = getColors(data.length);
var color = d3.scale.ordinal()
.domain(data)
.range(colorRange);
var regionsByFruit = d3.nest()
.key(function(d) { return d.fruit; })
.entries(data)
.reverse();
var label = d3.select("form").selectAll("label")
.data(regionsByFruit)
.enter().append("label");
label.append("input")
.attr("type", "radio")
.attr("name", "fruit")
.attr("value", function(d) { return d.key; })
.on("change", change)
.filter(function(d, i) { return !i; })
.each(change)
.property("checked", true);
label.append("span")
.text(function(d) { return d.key; });
function change(region) {
var data0 = path.data(),
data1 = pie(region.values);
path = path.data(data1, key);
path.enter().append("path")
.each(function(d, i) { this._current = findNeighborArc(i, data0, data1, key) || d; })
.attr("fill", function(d) { return color(d.data.region); })
.append("title")
.text(function(d) { return d.data.region; });
path.exit()
.datum(function(d, i) { return findNeighborArc(i, data1, data0, key) || d; })
.transition()
.duration(750)
.attrTween("d", arcTween)
.remove();
path.transition()
.duration(750)
.attrTween("d", arcTween);
}
});
function key(d) {
return d.data.region;
}
function type(d) {
d.count = +d.count;
return d;
}
function findNeighborArc(i, data0, data1, key) {
var d;
return (d = findPreceding(i, data0, data1, key)) ? {startAngle: d.endAngle, endAngle: d.endAngle}
: (d = findFollowing(i, data0, data1, key)) ? {startAngle: d.startAngle, endAngle: d.startAngle}
: null;
}
// Find the element in data0 that joins the highest preceding element in data1.
function findPreceding(i, data0, data1, key) {
var m = data0.length;
while (--i >= 0) {
var k = key(data1[i]);
for (var j = 0; j < m; ++j) {
if (key(data0[j]) === k) return data0[j];
}
}
}
// Find the element in data0 that joins the lowest following element in data1.
function findFollowing(i, data0, data1, key) {
var n = data1.length, m = data0.length;
while (++i < n) {
var k = key(data1[i]);
for (var j = 0; j < m; ++j) {
if (key(data0[j]) === k) return data0[j];
}
}
}
function arcTween(d) {
var i = d3.interpolate(this._current, d);
this._current = i(0);
return function(t) { return arc(i(t)); };
}
//this is just underscore _.times
//http://underscorejs.org/
var times = function(n, iterator, context) {
var accum = Array(Math.max(0, n));
for (var i = 0; i < n; i++) accum[i] = iterator.call(context, i);
return accum;
};
function getColors(num){
//parse out our array of preset colors
var colors = d3.scale.category20().range();
//figure out how many shades we need for the number of ordinal categories
var numShades = d3.max([Math.ceil(num / 20), 1]);
//build a new range splitting each color into (numShades) colors
var range = colors.reduce(function(memo,color){
return memo.concat(times(numShades, function(index){
return d3.rgb(color).darker(index / 2).toString();
}));
}, []);
return range;
}
</script>
</body></html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment