Skip to content

Instantly share code, notes, and snippets.

@csesivakumar
Last active April 15, 2016 15:44
Show Gist options
  • Save csesivakumar/31e23b875f260622f8f7da3ae380958c to your computer and use it in GitHub Desktop.
Save csesivakumar/31e23b875f260622f8f7da3ae380958c to your computer and use it in GitHub Desktop.
{
"nodes":[
{"PersonId":"1","Forename":"Tom","Surname":"Flynn","Gender":"Male","Weight":2},
{"PersonId":"2","Forename":"Carl","Surname":"Phillips","Gender":"Male","Weight":2},
{"PersonId":"3","Forename":"Tom","Surname":"Jones","Gender":"Male","Weight":3},
{"PersonId":"5","Forename":"Jerome","Surname":"Haro","Gender":"Male","Weight":2},
{"PersonId":"6","Forename":"Melvin","Surname":"Herbers","Gender":"Male","Weight":2},
{"PersonId":"7","Forename":"Fred","Surname":"Bronson","Gender":"Male","Weight":4},
{"PersonId":"8","Forename":"Mary Ann","Surname":"McClain","Gender":"Female","Weight":2},
{"PersonId":"9","Forename":"John","Surname":"Spotts","Gender":"Male","Weight":2},
{"PersonId":"10","Forename":"Kenny","Surname":"Crowe","Gender":"Male","Weight":2},
{"PersonId":"11","Forename":"Jim","Surname":"Rostow","Gender":"Male","Weight":2},
{"PersonId":"12","Forename":"Miguel","Surname":"Motta","Gender":"Male","Weight":3},
{"PersonId":"13","Forename":"Earl","Surname":"Lamb","Gender":"Male","Weight":2},
{"PersonId":"16","Forename":"Freddy","Surname":"Millan","Gender":"Male","Weight":2},
{"PersonId":"17","Forename":"Larry","Surname":"Brown","Gender":"Male","Weight":2},
{"PersonId":"18","Forename":"Susan","Surname":"Steingasser","Gender":"Female","Weight":2},
{"PersonId":"19","Forename":"James","Surname":"Mills","Gender":"Male","Weight":2},
{"PersonId":"20","Forename":"Kathleen","Surname":"Schardt","Gender":"Female","Weight":2},
{"PersonId":"21","Forename":"Laura","Surname":"Frankland","Gender":"Female","Weight":2},
{"PersonId":"22","Forename":"Jerry","Surname":"Phillips","Gender":"Male","Weight":2},
{"PersonId":"23","Forename":"Frederic","Surname":"Puhan","Gender":"Male","Weight":2},
{"PersonId":"24","Forename":"Larry","Surname":"Walters","Gender":"Male","Weight":2},
{"PersonId":"25","Forename":"Rocky","Surname":"Midyett","Gender":"Male","Weight":2},
{"PersonId":"26","Forename":"Richard","Surname":"Tatge","Gender":"Male","Weight":3},
{"PersonId":"27","Forename":"Doug","Surname":"Nikkel","Gender":"Male","Weight":3},
{"PersonId":"28","Forename":"Gerald","Surname":"Hunter","Gender":"Male","Weight":2},
{"PersonId":"29","Forename":"Terry","Surname":"Ford","Gender":"Unknown","Weight":2},
{"PersonId":"30","Forename":"Vincent","Surname":"Stuart","Gender":"Male","Weight":6},
{"PersonId":"31","Forename":"Nick","Surname":"Bado","Gender":"Male","Weight":2},
{"PersonId":"32","Forename":"Ronald","Surname":"Ross","Gender":"Male","Weight":2},
{"PersonId":"33","Forename":"William","Surname":"Lee","Gender":"Male","Weight":2},
{"PersonId":"34","Forename":"Lizette","Surname":"Leveille","Gender":"Female","Weight":2},
{"PersonId":"35","Forename":"Stephen","Surname":"Hall","Gender":"Male","Weight":2},
{"PersonId":"36","Forename":"Steve","Surname":"Chapman","Gender":"Male","Weight":5},
{"PersonId":"37","Forename":"Paul","Surname":"Bakulski","Gender":"Male","Weight":2},
{"PersonId":"38","Forename":"Christine","Surname":"Austin","Gender":"Female","Weight":2},
{"PersonId":"39","Forename":"Donald","Surname":"Ensign","Gender":"Male","Weight":2},
{"PersonId":"40","Forename":"William","Surname":"Bailey","Gender":"Male","Weight":2},
{"PersonId":"41","Forename":"Kenneth","Surname":"Gallagher","Gender":"Male","Weight":4},
{"PersonId":"42","Forename":"Kathleen","Surname":"Neff","Gender":"Female","Weight":2},
{"PersonId":"43","Forename":"Steve","Surname":"Brown","Gender":"Male","Weight":2},
{"PersonId":"44","Forename":"Barbara","Surname":"Hannah","Gender":"Female","Weight":2},
{"PersonId":"45","Forename":"Brian","Surname":"Yates","Gender":"Male","Weight":4},
{"PersonId":"46","Forename":"John","Surname":"Gunther","Gender":"Male","Weight":2},
{"PersonId":"47","Forename":"Philip","Surname":"Rizzo","Gender":"Male","Weight":2},
{"PersonId":"48","Forename":"Norman","Surname":"Penovich","Gender":"Male","Weight":2},
{"PersonId":"49","Forename":"Jack","Surname":"Wickman","Gender":"Male","Weight":2},
{"PersonId":"50","Forename":"Mike","Surname":"Murano","Gender":"Male","Weight":2},
{"PersonId":"10001","Forename":"Walmart","Surname":"","Weight":1,"NodeColor":"#000000","Name":"Walmart","Type":"2","PubDate":1964},
{"PersonId":"10002","Forename":"Kohls","Surname":"","Weight":4.1,"NodeColor":"#000000","Name":"Kohls","Type":"2","PubDate":1964}
],
"links":[
{"source":"1","target":"10002","PubDate":1964},
{"source":"3","target":"10002","PubDate":1964},
{"source":"5","target":"10002","PubDate":1964},
{"source":"6","target":"10002","PubDate":1964},
{"source":"2","target":"10002","PubDate":1964},
{"source":"7","target":"10002","PubDate":1965},
{"source":"8","target":"10002","PubDate":1964},
{"source":"9","target":"10002","PubDate":1964},
{"source":"10","target":"10002","PubDate":1964},
{"source":"11","target":"10002","PubDate":1964},
{"source":"12","target":"10002","PubDate":1964},
{"source":"12","target":"10002","PubDate":1964},
{"source":"13","target":"10002","PubDate":1964},
{"source":"16","target":"10002","PubDate":1964},
{"source":"17","target":"10002","PubDate":1964},
{"source":"18","target":"10002","PubDate":1964},
{"source":"19","target":"10002","PubDate":1964},
{"source":"20","target":"10002","PubDate":1964},
{"source":"21","target":"10002","PubDate":1964},
{"source":"22","target":"10002","PubDate":1964},
{"source":"23","target":"10002","PubDate":1964},
{"source":"24","target":"10002","PubDate":1964},
{"source":"25","target":"10002","PubDate":1964},
{"source":"26","target":"10002","PubDate":1964},
{"source":"27","target":"10002","PubDate":1964},
{"source":"28","target":"10002","PubDate":1964},
{"source":"29","target":"10002","PubDate":1964},
{"source":"30","target":"10002","PubDate":1964},
{"source":"31","target":"10002","PubDate":1964},
{"source":"32","target":"10002","PubDate":1964},
{"source":"33","target":"10002","PubDate":1964},
{"source":"34","target":"10002","PubDate":1964},
{"source":"35","target":"10002","PubDate":1964},
{"source":"36","target":"10002","PubDate":1964},
{"source":"37","target":"10002","PubDate":1965},
{"source":"38","target":"10002","PubDate":1965},
{"source":"39","target":"10002","PubDate":1965},
{"source":"40","target":"10002","PubDate":1965},
{"source":"41","target":"10002","PubDate":1965},
{"source":"36","target":"10002","PubDate":1965},
{"source":"42","target":"10002","PubDate":1965},
{"source":"43","target":"10002","PubDate":1965},
{"source":"44","target":"10002","PubDate":1965},
{"source":"45","target":"10002","PubDate":1965},
{"source":"46","target":"10002","PubDate":1965},
{"source":"47","target":"10002","PubDate":1965},
{"source":"48","target":"10002","PubDate":1965},
{"source":"49","target":"10002","PubDate":1965},
{"source":"50","target":"10002","PubDate":1965}
]
}
<!DOCTYPE html>
<meta charset="utf-8">
<style>
</style>
<body>
<table style="margin-left:10px"">
<tr>
<td valign="top">
<div style="margin-left:5px; margin-top:50px;">
<a href="#" id = "1964" class="myButton" BType="year" Enabled = "0" onclick="Update_Node(this.id,1964)">1964</a><br><br>
<a href="#" id = "1965" class="myButton" BType="year" Enabled = "0" onclick="Update_Node(this.id,1965)">1965</a><br><br>
</div>
</td>
<td>
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
<div class="graph" style="margin-left:25px"></div>
</td>
</tr>
</table>
<script>
var width = 700,
height = 600,
radius = 6;
var color = d3.scale.category20();
var Updatededges = [];
var Updatednodes = [];
var svg = d3.select("div.graph").append("svg")
.attr("width", width)
.attr("height", height);
var edges = [];
var nodes = [];
var series = [0,0,0,0,0,0,0,0,0,0,0];
var year = [0,0,0,0,0,0,0,0,0];
var force = d3.layout.force()
.charge(-240)
.gravity(0.2)
.linkDistance(30)
.size([width, height]);
function Update_Node(buttonid,ruleValue)
{
Updatededges = edges.slice();
Updatednodes = [];
var Clickbutton = document.getElementById(buttonid);
var status = Clickbutton.getAttribute("Enabled");
var type = Clickbutton.getAttribute("Btype");
if (status =="0"){
Clickbutton.setAttribute("Enabled","1");
Clickbutton.style.color = "Red";}
if (status =="1"){
Clickbutton.setAttribute("Enabled","0");
Clickbutton.style.color = "Black";}
var buttons = document.getElementsByTagName('a');
for(var j = 0; j < buttons.length; j++) {
var button = buttons[j];
var status = button.getAttribute("Enabled");
var type = button.getAttribute("Btype");
if (type=="year" && status=="1"){
for(var i = 0; i < Updatededges.length; i++)
{
var obj = Updatededges[i];
if(obj.PubDate == button.id){
Updatededges.splice(i, 1);
i--;
}
}
}
}
for(var i = 0; i < Updatededges.length; i++)
{
var obj = Updatededges[i];
if(Updatednodes.indexOf(obj.source) == -1){
Updatednodes.push(obj.source);}
if(Updatednodes.indexOf(obj.target) == -1){
Updatednodes.push(obj.target);
}
}
console.log(Updatednodes.length);
var gravity = 0.2
force
.gravity(gravity)
render(Updatednodes,Updatededges)
}
d3.json("Cdata.json", function(error, graph) {
if (error) throw error;
graph.links.forEach(function(e) {
var sourceNode = graph.nodes.filter(function(n) { return n.PersonId === e.source; })[0],
targetNode = graph.nodes.filter(function(n) { return n.PersonId === e.target; })[0];
edges.push({source: sourceNode, target: targetNode, PubDate : e.PubDate});
});
nodes = graph.nodes;
render(graph.nodes,edges)
});
function render(nodelist,links) {
force
.links(links)
.nodes(nodelist)
.start();
var link = svg.selectAll(".link").data(links);
link.enter().append("line").attr("class", "link");
link.style("stroke-opacity", 0.5)
.style("stroke-width", function(d) { return 1.5})
.style("stroke", function(d) { if (d.target.PersonId >= 10001) return "#D1A799";});
link.exit().remove();
var node = svg.selectAll(".node").data(nodelist);
node.enter().append("circle")
.attr("class", "node")
.append('title')
.append('text');
node
.attr("r", function(d) { return d.Weight; });
node
.style("fill", function(d) {if (d.Type=="2") return d.NodeColor; if (d.Gender == "Male") return "#889CB0"; else if (d.Gender == "Female") return "#851B1B"; else return "#BFA915"})
.style("stroke", "#382E44")
.style("stroke-width", 0.05)
.call(force.drag);
node.select("title")
.text(function(d) { return d.Forename+" "+d.Surname+" ("+d.Weight+")"; });
node.select("text")
.attr("dx", 12)
.attr("dy", ".35em")
.style("font-weight", "bold")
.style("fill", d3.rgb(29,23,23))
.style("fill", d3.rgb(29,23,23))
.text(function(d) { return d.Name});
node.exit().remove();
force.on("tick", function() {
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; });
node.attr("transform", function(d) {
return 'translate(' + [d.x, d.y] + ')';
});
});
}
</script>
</body>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment