Click on any circle to zoom in or out. Code by mbostock https://gist.github.com/mbostock/7607535
Created
September 28, 2017 22:52
-
-
Save chrpr/e861ff09d9bb0fcba85c036d1524f127 to your computer and use it in GitHub Desktop.
Pygotham Citing Sentences Bigrams by Sentence
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{"name": "flare", "children": [{"children": [{"name": "previously described", "size": 210}, {"name": "described previously", "size": 178}, {"name": "hsp 16", "size": 100}, {"name": "kindly provided", "size": 95}, {"name": "wild type", "size": 92}, {"name": "1 5", "size": 69}, {"name": "e coli", "size": 67}, {"name": "0 1", "size": 63}, {"name": "elt 7", "size": 62}, {"name": "g ml", "size": 62}], "name": "Materials and methods", "size": 1564}, {"children": [{"name": "kv channel", "size": 25}, {"name": "conductive polymer", "size": 24}, {"name": "snare complex", "size": 24}, {"name": "polymer substrate", "size": 19}, {"name": "mutagenesis studies", "size": 16}, {"name": "channel mutagenesis", "size": 16}, {"name": "snare complexes", "size": 16}, {"name": "single snare", "size": 15}, {"name": "ion channels", "size": 14}, {"name": "fof1 atp", "size": 14}], "name": "Discussion and conclusions", "size": 152}, {"children": [{"name": "es cells", "size": 151}, {"name": "target genes", "size": 93}, {"name": "grid cell", "size": 74}, {"name": "figure 1a", "size": 47}, {"name": "methyl groups", "size": 47}, {"name": "cell firing", "size": 46}, {"name": "prc2 target", "size": 46}, {"name": "grid patterns", "size": 45}, {"name": "pcg proteins", "size": 42}, {"name": "self location", "size": 38}], "name": "short survey", "size": 272}, {"children": [{"name": "tdp 43", "size": 389}, {"name": "dj 1", "size": 351}, {"name": "hair cells", "size": 307}, {"name": "e g", "size": 205}, {"name": "hair cell", "size": 178}, {"name": "conductive polymers", "size": 163}, {"name": "43 fus", "size": 160}, {"name": "fof1 atp", "size": 150}, {"name": "olfactory epithelium", "size": 142}, {"name": "atp synthase", "size": 139}], "name": "Other section", "size": 4303}, {"children": [{"name": "1 aj", "size": 17}, {"name": "bj 1", "size": 17}, {"name": "co players", "size": 15}, {"name": "1 bj", "size": 13}, {"name": "context signal", "size": 10}, {"name": "become associated", "size": 10}, {"name": "aj 1", "size": 10}, {"name": "1 l", "size": 9}, {"name": "multiplayer game", "size": 9}, {"name": "bj j", "size": 7}], "name": "Model", "size": 24}, {"children": [{"name": "c elegans", "size": 240}, {"name": "stem cells", "size": 221}, {"name": "grid cells", "size": 174}, {"name": "transcription factors", "size": 154}, {"name": "e coli", "size": 150}, {"name": "gene expression", "size": 143}, {"name": "previous studies", "size": 127}, {"name": "e g", "size": 126}, {"name": "grid cell", "size": 118}, {"name": "flp 11", "size": 107}], "name": "Results and Discussion", "size": 4179}, {"children": [{"name": "stem cells", "size": 594}, {"name": "transcription factors", "size": 396}, {"name": "embryonic stem", "size": 285}, {"name": "c elegans", "size": 258}, {"name": "somatic cells", "size": 257}, {"name": "self renewal", "size": 234}, {"name": "gene expression", "size": 231}, {"name": "stem cell", "size": 216}, {"name": "pluripotent stem", "size": 208}, {"name": "17 estradiol", "size": 206}], "name": "Introduction", "size": 5643}, {"children": [{"name": "dna glycosylases", "size": 20}, {"name": "tomas lindahl", "size": 19}, {"name": "lindahl group", "size": 13}, {"name": "dna 5", "size": 12}, {"name": "26 27", "size": 11}, {"name": "gene targeted", "size": 11}, {"name": "21 hypoxanthine", "size": 11}, {"name": "stranded ssdna", "size": 11}, {"name": "well recent", "size": 11}, {"name": "poly adp", "size": 11}], "name": "note", "size": 34}, {"children": [{"name": "wild type", "size": 228}, {"name": "c elegans", "size": 174}, {"name": "grid cell", "size": 165}, {"name": "gene expression", "size": 157}, {"name": "es cells", "size": 134}, {"name": "stem cell", "size": 118}, {"name": "grid cells", "size": 112}, {"name": "stem cells", "size": 103}, {"name": "transcription factors", "size": 97}, {"name": "self renewal", "size": 95}], "name": "Results", "size": 3340}, {"children": [{"name": "e g", "size": 820}, {"name": "pvn son", "size": 640}, {"name": "place cell", "size": 536}, {"name": "place cells", "size": 408}, {"name": "cell firing", "size": 396}, {"name": "place fields", "size": 335}, {"name": "grid cells", "size": 329}, {"name": "grid cell", "size": 328}, {"name": "stem cells", "size": 303}, {"name": "firing patterns", "size": 276}], "name": "review", "size": 9495}, {"children": [{"name": "single molecule", "size": 14}, {"name": "molecule fret", "size": 8}, {"name": "repair proteins", "size": 7}, {"name": "purified labeled", "size": 7}, {"name": "labeled proteins", "size": 7}, {"name": "current microscopy", "size": 5}, {"name": "nuclear bacterial", "size": 5}, {"name": "proteins inserted", "size": 5}, {"name": "repair beyond", "size": 5}, {"name": "microscopy techniques", "size": 5}], "name": "Future directions", "size": 17}, {"children": [{"name": "gei 17", "size": 50}, {"name": "klp 19", "size": 38}, {"name": "c elegans", "size": 27}, {"name": "e3 ligases", "size": 25}, {"name": "bub 1", "size": 23}, {"name": "sumo e3", "size": 22}, {"name": "ubc 9", "size": 21}, {"name": "sumo specific", "size": 18}, {"name": "plus end", "size": 18}, {"name": "icp 1", "size": 17}], "name": "conference paper", "size": 82}]} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<meta charset="utf-8"> | |
<style> | |
.node { | |
cursor: pointer; | |
} | |
.node:hover { | |
stroke: #000; | |
stroke-width: 1.5px; | |
} | |
.node--leaf { | |
fill: white; | |
} | |
.label { | |
font: 11px "Helvetica Neue", Helvetica, Arial, sans-serif; | |
text-anchor: middle; | |
text-shadow: 0 1px 0 #fff, 1px 0 0 #fff, -1px 0 0 #fff, 0 -1px 0 #fff; | |
} | |
.label, | |
.node--root, | |
.node--leaf { | |
pointer-events: none; | |
} | |
</style> | |
<body> | |
<script src="//d3js.org/d3.v3.min.js"></script> | |
<script> | |
var margin = 20, | |
diameter = 960; | |
var color = d3.scale.linear() | |
.domain([-1, 5]) | |
.range(["hsl(152,80%,80%)", "hsl(228,30%,40%)"]) | |
.interpolate(d3.interpolateHcl); | |
var pack = d3.layout.pack() | |
.padding(2) | |
.size([diameter - margin, diameter - margin]) | |
.value(function(d) { return d.size; }) | |
var svg = d3.select("body").append("svg") | |
.attr("width", diameter) | |
.attr("height", diameter) | |
.append("g") | |
.attr("transform", "translate(" + diameter / 2 + "," + diameter / 2 + ")"); | |
d3.json("flare.json", function(error, root) { | |
if (error) throw error; | |
var focus = root, | |
nodes = pack.nodes(root), | |
view; | |
var circle = svg.selectAll("circle") | |
.data(nodes) | |
.enter().append("circle") | |
.attr("class", function(d) { return d.parent ? d.children ? "node" : "node node--leaf" : "node node--root"; }) | |
.style("fill", function(d) { return d.children ? color(d.depth) : null; }) | |
.on("click", function(d) { if (focus !== d) zoom(d), d3.event.stopPropagation(); }); | |
var text = svg.selectAll("text") | |
.data(nodes) | |
.enter().append("text") | |
.attr("class", "label") | |
.style("fill-opacity", function(d) { return d.parent === root ? 1 : 0; }) | |
.style("display", function(d) { return d.parent === root ? "inline" : "none"; }) | |
.text(function(d) { return d.name; }); | |
var node = svg.selectAll("circle,text"); | |
d3.select("body") | |
.style("background", color(-1)) | |
.on("click", function() { zoom(root); }); | |
zoomTo([root.x, root.y, root.r * 2 + margin]); | |
function zoom(d) { | |
var focus0 = focus; focus = d; | |
var transition = d3.transition() | |
.duration(d3.event.altKey ? 7500 : 750) | |
.tween("zoom", function(d) { | |
var i = d3.interpolateZoom(view, [focus.x, focus.y, focus.r * 2 + margin]); | |
return function(t) { zoomTo(i(t)); }; | |
}); | |
transition.selectAll("text") | |
.filter(function(d) { return d.parent === focus || this.style.display === "inline"; }) | |
.style("fill-opacity", function(d) { return d.parent === focus ? 1 : 0; }) | |
.each("start", function(d) { if (d.parent === focus) this.style.display = "inline"; }) | |
.each("end", function(d) { if (d.parent !== focus) this.style.display = "none"; }); | |
} | |
function zoomTo(v) { | |
var k = diameter / v[2]; view = v; | |
node.attr("transform", function(d) { return "translate(" + (d.x - v[0]) * k + "," + (d.y - v[1]) * k + ")"; }); | |
circle.attr("r", function(d) { return d.r * k; }); | |
} | |
}); | |
d3.select(self.frameElement).style("height", diameter + "px"); | |
</script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment