xxxxxxxxxx
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/d3@2.10.3/d3.v2.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/betamos/better-autocomplete/develop/src/jquery.better-autocomplete.js"></script>
<style type="text/css">
.link {
stroke: #999;
stroke-opacity: .6;
}
</style>
</head>
<body>
<div id="chart">
<form id="search">
Legislator: <input type="text" />
<input type="submit" />
</form>
</div>
<script type="text/javascript">
var width = 960,
height = 500
color = d3.scale.ordinal().range(["#0B009A", "#009A16", "#FF821A", "#DAAA6E", "#A5A5A5", "#F45399"]);
var link;
var svg = d3.select("#chart").append("svg")
.attr("width", width)
.attr("height", height);
var force = d3.layout.force().size([width, height])
.charge(-50);
d3.json("names.json", function(nameSet) {
d3.json("links.json", function(linkSet) {
console.log(nameSet.Label)
linkSet.forEach(function(d) {
d.source = nameSet[d.sourceID - 1];
d.target = nameSet[d.targetID - 1];
d.relation = +d.relation;
});
force
.nodes(nameSet)
.start();
var node = svg.selectAll(".node")
.data(nameSet)
.enter().append("circle")
.attr("r", 6)
.attr("class", "node")
.attr("fill", function(d) { return color(d.Party); })
.call(force.drag);
force.on("tick", function() {
node.attr("cx", function(d) { return d.x; })
.attr("cy", function(d) { return d.y; });
});
node.append("title")
.text(function(d) { return d.Label; });
node.on("mousedown", function() {
var linkID = d3.select(this).datum().ID;
drawLinks(linkID)
});
$('#search').submit(function() {
var searchTerm = $('input').val();
var searchFilter = nameSet.filter(function(d) { return d.Label === searchTerm; });
var searchID = searchFilter[0].ID;
drawLinks(searchID)
return false;
});
function drawLinks(a) {
svg.selectAll(".link").remove()
var filterLinks = linkSet.filter(function(d) { return d.sourceID === a; });
force
.nodes(nameSet)
.links(filterLinks)
.linkDistance(function(d) { return -d.relation + 120; })
.start();
console.log(a)
console.log(filterLinks)
var link = svg.selectAll("line")
.data(filterLinks)
.enter().append("svg:line")
.attr("class", "link");
force.on("tick", function() {
node.attr("cx", function(d) { return d.x; })
.attr("cy", function(d) { return d.y; });
link.attr("x1", function(d) { return d.source.x; })
.attr("y1", function(d) { return d.source.y; })
.attr("x2", function(d) { return d.target.x; })
.attr("y2", function(d) { return d.target.y; });
});
};
});
});
</script>
</body>
</html>
Updated missing url https://raw.github.com/mbostock/d3/master/d3.js to https://cdn.jsdelivr.net/npm/d3@2.10.3/d3.v2.js
Updated missing url https://raw.github.com/betamos/Better-Autocomplete/develop/src/jquery.better-autocomplete.js to https://cdn.jsdelivr.net/gh/betamos/better-autocomplete/develop/src/jquery.better-autocomplete.js
https://raw.github.com/mbostock/d3/master/d3.js
https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js
https://raw.github.com/betamos/Better-Autocomplete/develop/src/jquery.better-autocomplete.js