Skip to content

Instantly share code, notes, and snippets.

@githoov githoov/index.html
Created Mar 27, 2018

Embed
What would you like to do?
</style>
<body>
<script src="//d3js.org/d3.v3.min.js"></script>
<script>
// http://blog.thomsonreuters.com/index.php/mobile-patent-suits-graphic-of-the-day/
var links = [
{
"target":"PlayFab, Inc.",
"source":"Bulletproof Arcade Limited"
},
{
"target":"PlayFab, Inc.",
"source":"Fluffy Fairy Games GmbH"
},
{
"target":"Amplitude Analytics",
"source":"Hubspot, Inc."
},
{
"target":"PlayFab, Inc.",
"source":"Bee Square S.L."
},
{
"target":"PlayFab, Inc.",
"source":"Starbreeze"
},
{
"target":"PlayFab, Inc.",
"source":"Seismic Games"
},
{
"target":"PlayFab, Inc.",
"source":"BoomTV Inc"
},
{
"target":"ThinkSmart Data Services LLC.",
"source":"Integrated Direct Marketing"
},
{
"target":"Square, Inc.",
"source":"Integrated Direct Marketing"
},
{
"target":"Turner Broadcasting System, Inc.",
"source":"Turner Broadcasting System, Inc."
},
{
"target":"Cimpress USA Incorporated",
"source":"Cimpress USA Incorporated"
},
{
"target":"Kustomer, Inc.",
"source":"Slice & Co"
},
{
"target":"Datascan Technologies LLC",
"source":"Datascan Technologies LLC"
},
{
"target":"Ppd Development, LP",
"source":"Ppd Development, LP"
},
{
"target":"TubeMogul, Inc.",
"source":"TubeMogul, Inc."
},
{
"target":"Adobe",
"source":"TubeMogul, Inc."
},
{
"target":"Cardlytics, Inc.",
"source":"Cardlytics, Inc."
},
{
"target":"PlayFab, Inc.",
"source":"Fidgetly, Inc."
},
{
"target":"Tune, Inc.",
"source":"Tune, Inc."
},
{
"target":"Tomorrow Networks, LLC",
"source":"Aptus Health"
},
{
"target":"PlayFab, Inc.",
"source":"Free Range Games"
},
{
"target":"Localytics",
"source":"theSkimm"
},
{
"target":"Georgia-Pacific LLC",
"source":"Georgia Pacific"
},
{
"target":"PlayFab, Inc.",
"source":"iDream Interactive"
},
{
"target":"Philips Healthcare",
"source":"Philips Healthcare"
},
{
"target":"Placeiq, Inc.",
"source":"Placeiq, Inc."
},
{
"target":"Localytics",
"source":"Localytics"
},
{
"target":"PlayFab, Inc.",
"source":"Wizards of The Coast, Llc."
},
{
"target":"True X Media",
"source":"Fox, Inc."
},
{
"target":"PlayFab, Inc.",
"source":"Kemojo Kuhubb Studios Inc (self-service)"
},
{
"target":"PlayFab, Inc.",
"source":"PlayFab, Inc."
},
{
"target":"Localytics",
"source":"PlayDots, Inc."
},
{
"target":"Kustomer, Inc.",
"source":"Boxy Charm (forzalabs)"
},
{
"target":"Ruelala, Inc.",
"source":"Nanigans, Inc."
},
{
"target":"Arm Insight, Inc.",
"source":"Arm Insight, Inc."
},
{
"target":"Instacart Inc.",
"source":"Instacart Inc."
},
{
"target":"PlayFab, Inc.",
"source":"AutoAttack Games"
},
{
"target":"SOASTA, Inc.",
"source":"SOASTA, Inc."
},
{
"target":"Snagajob",
"source":"Stride Software, Inc."
},
{
"target":"Videology",
"source":"White Ops"
},
{
"target":"TubeMogul, Inc.",
"source":"White Ops"
},
{
"target":"PlayFab, Inc.",
"source":"Dave & Buster\\'s"
},
{
"target":"PlayFab, Inc.",
"source":"WildCard Games Inc"
},
{
"target":"Snagajob",
"source":"Snagajob"
},
{
"target":"Office Depot",
"source":"Office Depot"
},
{
"target":"ThinkSmart Data Services LLC.",
"source":"Square, Inc."
},
{
"target":"Integrated Direct Marketing",
"source":"Square, Inc."
},
{
"target":"Yellowhammer Media Group, Inc.",
"source":"Yellowhammer Media Group, Inc."
},
{
"target":"Square, Inc.",
"source":"ThinkSmart Data Services LLC."
},
{
"target":"PlayFab, Inc.",
"source":"Hashbang Games, LLC"
},
{
"target":"Turner Broadcasting System, Inc.",
"source":"Equifax"
},
{
"target":"PlayFab, Inc.",
"source":"BULKHEAD INTERACTIVE LIMITED"
},
{
"target":"JW Player",
"source":"Cengage Learning, Inc."
},
{
"target":"Insikt, Inc.",
"source":"Insikt, Inc."
},
{
"target":"Boomerang Commerce",
"source":"Boomerang Commerce"
},
{
"target":"Lacework",
"source":"SNFK"
},
{
"target":"PlayFab, Inc.",
"source":"Oddity Studios"
},
{
"target":"Localytics",
"source":"Asics Digital"
},
{
"target":"Amplitude Analytics",
"source":"Mixmax, Inc."
},
{
"target":"Localytics",
"source":"Upday Gmbh & Co.Kg"
},
{
"target":"PlayFab, Inc.",
"source":"Miniclip UK Ltd"
},
{
"target":"Pennymac Mortgage Investment Trust",
"source":"Pennymac Mortgage Investment Trust"
},
{
"target":"PlayFab, Inc.",
"source":"Sony Pictures Television Networks Games"
},
{
"target":"Vacatia, Inc.",
"source":"Vacatia, Inc."
},
{
"target":"Spireon, Inc.",
"source":"Spireon, Inc."
},
{
"target":"One Technologies",
"source":"One Technologies"
},
{
"target":"PlayFab, Inc.",
"source":"Hyper Hippo Productions Ltd"
},
{
"target":"Athenahealth, Inc.",
"source":"Athenahealth, Inc."
},
{
"target":"Playstudios",
"source":"Playstudios"
},
{
"target":"Juniper Networks, Inc.",
"source":"Juniper Networks, Inc."
},
{
"target":"Bitshop, Inc",
"source":"Five Bridges Advisors, LLC"
},
{
"target":"Aptus Health",
"source":"Tomorrow Networks, LLC"
}
];
var nodes = {};
// Compute the distinct nodes from the links.
links.forEach(function(link) {
link.source = nodes[link.source] || (nodes[link.source] = {name: link.source});
link.target = nodes[link.target] || (nodes[link.target] = {name: link.target});
});
var width = 960,
height = 500;
var force = d3.layout.force()
.nodes(d3.values(nodes))
.links(links)
.size([width, height])
.linkDistance(60)
.charge(-300)
.on("tick", tick)
.start();
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height);
var link = svg.selectAll(".link")
.data(force.links())
.enter().append("line")
.attr("class", "link");
var node = svg.selectAll(".node")
.data(force.nodes())
.enter().append("g")
.attr("class", "node")
.on("mouseover", mouseover)
.on("mouseout", mouseout)
.call(force.drag);
node.append("circle")
.attr("r", 8);
node.append("text")
.attr("x", 12)
.attr("dy", ".35em")
.text(function(d) { return d.name; });
function tick() {
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 + ")"; });
}
function mouseover() {
d3.select(this).select("circle").transition()
.duration(750)
.attr("r", 16);
}
function mouseout() {
d3.select(this).select("circle").transition()
.duration(750)
.attr("r", 8);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.