<!DOCTYPE html>
<!-- Taken from http://bl.ocks.org/mbostock/4062045 --><html>
<head>
<meta charset="utf-8">
<style>

.node {
  stroke: #fff;
  stroke-width: 1.5px;
}

.link {
  stroke: #999;
  stroke-opacity: .6;
}

</style>
</head>
<body>
<script id="d3" src="http://d3js.org/d3.v3.min.js"></script><div style="visibility: hidden">
 The data should be in a variable named graph.
     It should be of the form { nodes: [ {name: "value"}, ....],
                                links: [ {source: number, target: number}, ...]
                              }
</div>
<script id="data">var graph ={
 "nodes": [
 {
 "name": "R_gc_running" 
},
{
 "name": "register_bad_sexp_type" 
},
{
 "name": "sexptype2char" 
},
{
 "name": "R_gc_internal" 
},
{
 "name": "R_gc_full" 
},
{
 "name": "mem_err_heap" 
},
{
 "name": "mem_err_malloc" 
},
{
 "name": "init_gc_grow_settings" 
},
{
 "name": "GetNewPage" 
},
{
 "name": "ReleasePage" 
},
{
 "name": "TryToReleasePages" 
},
{
 "name": "getVecSizeInVEC" 
},
{
 "name": "ReleaseLargeFreeVectors" 
},
{
 "name": "AdjustHeapSize" 
},
{
 "name": "AgeNodeAndChildren" 
},
{
 "name": "old_to_new" 
},
{
 "name": "SortNodes" 
},
{
 "name": "MakeCFinalizer" 
},
{
 "name": "NewWeakRef" 
},
{
 "name": "R_MakeWeakRef" 
},
{
 "name": "R_MakeWeakRefC" 
},
{
 "name": "CheckFinalizers" 
},
{
 "name": "isCFinalizer" 
},
{
 "name": "MakeCFinalizer" 
},
{
 "name": "GetCFinalizer" 
},
{
 "name": "R_WeakRefKey" 
},
{
 "name": "R_WeakRefValue" 
},
{
 "name": "R_RunWeakRefFinalizer" 
},
{
 "name": "RunFinalizers" 
},
{
 "name": "R_RunExitFinalizers" 
},
{
 "name": "R_RegisterFinalizerEx" 
},
{
 "name": "R_RegisterFinalizer" 
},
{
 "name": "R_RegisterCFinalizerEx" 
},
{
 "name": "R_RegisterCFinalizer" 
},
{
 "name": "do_regFinaliz" 
},
{
 "name": "RunGenCollect" 
},
{
 "name": "R_gc_torture" 
},
{
 "name": "do_gctorture" 
},
{
 "name": "do_gctorture2" 
},
{
 "name": "init_gctorture" 
},
{
 "name": "do_gcinfo" 
},
{
 "name": "get_current_mem" 
},
{
 "name": "do_gc" 
},
{
 "name": "mem_err_cons" 
},
{
 "name": "Rf_InitMemory" 
},
{
 "name": "vmaxget" 
},
{
 "name": "vmaxset" 
},
{
 "name": "R_alloc" 
},
{
 "name": "S_alloc" 
},
{
 "name": "S_realloc" 
},
{
 "name": "Rf_allocSExp" 
},
{
 "name": "allocSExpNonCons" 
},
{
 "name": "Rf_cons" 
},
{
 "name": "Rf_NewEnvironment" 
},
{
 "name": "Rf_mkPROMISE" 
},
{
 "name": "Rf_allocVector" 
},
{
 "name": "Rf_allocCharsxp" 
},
{
 "name": "Rf_allocList" 
},
{
 "name": "Rf_allocS4Object" 
},
{
 "name": "R_gc" 
},
{
 "name": "R_getClockIncrement" 
},
{
 "name": "R_getProcTime" 
},
{
 "name": "do_gctime" 
},
{
 "name": "gc_start_timing" 
},
{
 "name": "gc_end_timing" 
},
{
 "name": "do_memlimits" 
},
{
 "name": "do_memoryprofile" 
},
{
 "name": "reset_pp_stack" 
},
{
 "name": "Rf_protect" 
},
{
 "name": "Rf_unprotect" 
},
{
 "name": "Rf_unprotect_ptr" 
},
{
 "name": "Rf_isProtected" 
},
{
 "name": "R_ProtectWithIndex" 
},
{
 "name": "R_Reprotect" 
},
{
 "name": "Rf_initStack" 
},
{
 "name": "R_chk_calloc" 
},
{
 "name": "R_chk_realloc" 
},
{
 "name": "R_chk_free" 
},
{
 "name": "R_PreserveObject" 
},
{
 "name": "RecursiveRelease" 
},
{
 "name": "R_ReleaseObject" 
},
{
 "name": "R_MakeExternalPtr" 
},
{
 "name": "R_ExternalPtrAddr" 
},
{
 "name": "R_ExternalPtrTag" 
},
{
 "name": "R_ExternalPtrProtected" 
},
{
 "name": "R_ClearExternalPtr" 
},
{
 "name": "R_SetExternalPtrAddr" 
},
{
 "name": "R_SetExternalPtrTag" 
},
{
 "name": "R_SetExternalPtrProtected" 
},
{
 "name": "R_MakeExternalPtrFn" 
},
{
 "name": "R_ExternalPtrAddrFn" 
},
{
 "name": "ATTRIB" 
},
{
 "name": "OBJECT" 
},
{
 "name": "MARK" 
},
{
 "name": "TYPEOF" 
},
{
 "name": "NAMED" 
},
{
 "name": "RTRACE" 
},
{
 "name": "LEVELS" 
},
{
 "name": "SET_ATTRIB" 
},
{
 "name": "SET_OBJECT" 
},
{
 "name": "SET_TYPEOF" 
},
{
 "name": "SET_NAMED" 
},
{
 "name": "SET_RTRACE" 
},
{
 "name": "SETLEVELS" 
},
{
 "name": "DUPLICATE_ATTRIB" 
},
{
 "name": "IS_S4_OBJECT" 
},
{
 "name": "SET_S4_OBJECT" 
},
{
 "name": "UNSET_S4_OBJECT" 
},
{
 "name": "LENGTH" 
},
{
 "name": "TRUELENGTH" 
},
{
 "name": "SETLENGTH" 
},
{
 "name": "SET_TRUELENGTH" 
},
{
 "name": "XLENGTH" 
},
{
 "name": "XTRUELENGTH" 
},
{
 "name": "IS_LONG_VEC" 
},
{
 "name": "R_CHAR" 
},
{
 "name": "STRING_ELT" 
},
{
 "name": "VECTOR_ELT" 
},
{
 "name": "LOGICAL" 
},
{
 "name": "INTEGER" 
},
{
 "name": "RAW" 
},
{
 "name": "REAL" 
},
{
 "name": "COMPLEX" 
},
{
 "name": "STRING_PTR" 
},
{
 "name": "VECTOR_PTR" 
},
{
 "name": "SET_STRING_ELT" 
},
{
 "name": "SET_VECTOR_ELT" 
},
{
 "name": "TAG" 
},
{
 "name": "CAR" 
},
{
 "name": "CDR" 
},
{
 "name": "CAAR" 
},
{
 "name": "CDAR" 
},
{
 "name": "CADR" 
},
{
 "name": "CDDR" 
},
{
 "name": "CADDR" 
},
{
 "name": "CADDDR" 
},
{
 "name": "CAD4R" 
},
{
 "name": "MISSING" 
},
{
 "name": "SET_TAG" 
},
{
 "name": "SETCAR" 
},
{
 "name": "SETCDR" 
},
{
 "name": "SETCADR" 
},
{
 "name": "SETCADDR" 
},
{
 "name": "SETCADDDR" 
},
{
 "name": "SETCAD4R" 
},
{
 "name": "SET_MISSING" 
},
{
 "name": "FORMALS" 
},
{
 "name": "BODY" 
},
{
 "name": "CLOENV" 
},
{
 "name": "RDEBUG" 
},
{
 "name": "RSTEP" 
},
{
 "name": "SET_FORMALS" 
},
{
 "name": "SET_BODY" 
},
{
 "name": "SET_CLOENV" 
},
{
 "name": "SET_RDEBUG" 
},
{
 "name": "SET_RSTEP" 
},
{
 "name": "PRINTNAME" 
},
{
 "name": "SYMVALUE" 
},
{
 "name": "INTERNAL" 
},
{
 "name": "DDVAL" 
},
{
 "name": "SET_PRINTNAME" 
},
{
 "name": "SET_SYMVALUE" 
},
{
 "name": "SET_INTERNAL" 
},
{
 "name": "SET_DDVAL" 
},
{
 "name": "FRAME" 
},
{
 "name": "ENCLOS" 
},
{
 "name": "HASHTAB" 
},
{
 "name": "ENVFLAGS" 
},
{
 "name": "SET_FRAME" 
},
{
 "name": "SET_ENCLOS" 
},
{
 "name": "SET_HASHTAB" 
},
{
 "name": "SET_ENVFLAGS" 
},
{
 "name": "PRCODE" 
},
{
 "name": "PRENV" 
},
{
 "name": "PRVALUE" 
},
{
 "name": "PRSEEN" 
},
{
 "name": "SET_PRENV" 
},
{
 "name": "SET_PRVALUE" 
},
{
 "name": "SET_PRCODE" 
},
{
 "name": "SET_PRSEEN" 
},
{
 "name": "SET_CXTAIL" 
},
{
 "name": "Rf_isNull" 
},
{
 "name": "Rf_isSymbol" 
},
{
 "name": "Rf_isLogical" 
},
{
 "name": "Rf_isReal" 
},
{
 "name": "Rf_isComplex" 
},
{
 "name": "Rf_isExpression" 
},
{
 "name": "Rf_isEnvironment" 
},
{
 "name": "Rf_isString" 
},
{
 "name": "Rf_isObject" 
},
{
 "name": "IS_ACTIVE_BINDING" 
},
{
 "name": "BINDING_IS_LOCKED" 
},
{
 "name": "SET_ACTIVE_BINDING_BIT" 
},
{
 "name": "LOCK_BINDING" 
},
{
 "name": "UNLOCK_BINDING" 
},
{
 "name": "PRIMVAL" 
},
{
 "name": "PRIMFUN" 
},
{
 "name": "SET_PRIMFUN" 
},
{
 "name": "IS_BYTES" 
},
{
 "name": "IS_LATIN1" 
},
{
 "name": "IS_ASCII" 
},
{
 "name": "IS_UTF8" 
},
{
 "name": "SET_BYTES" 
},
{
 "name": "SET_LATIN1" 
},
{
 "name": "SET_UTF8" 
},
{
 "name": "SET_ASCII" 
},
{
 "name": "ENC_KNOWN" 
},
{
 "name": "SET_CACHED" 
},
{
 "name": "IS_CACHED" 
},
{
 "name": "do_Rprofmem" 
},
{
 "name": "R_AllocStringBuffer" 
},
{
 "name": "R_FreeStringBuffer" 
},
{
 "name": "R_FreeStringBufferL" 
},
{
 "name": "Rf_Seql" 
},
{
 "name": "R_BadLongVector" 
} 
],
"links": [
 {
 "source": 10,
"target": 9 
},
{
 "source": 11,
"target": 1 
},
{
 "source": 14,
"target": 214 
},
{
 "source": 14,
"target": 1 
},
{
 "source": 18,
"target": 68 
},
{
 "source": 18,
"target": 55 
},
{
 "source": 18,
"target": 126 
},
{
 "source": 18,
"target": 69 
},
{
 "source": 19,
"target": 18 
},
{
 "source": 20,
"target": 68 
},
{
 "source": 20,
"target": 18 
},
{
 "source": 20,
"target": 17 
},
{
 "source": 20,
"target": 69 
},
{
 "source": 23,
"target": 55 
},
{
 "source": 27,
"target": 126 
},
{
 "source": 27,
"target": 68 
},
{
 "source": 27,
"target": 22 
},
{
 "source": 27,
"target": 24 
},
{
 "source": 27,
"target": 69 
},
{
 "source": 28,
"target": 68 
},
{
 "source": 28,
"target": 126 
},
{
 "source": 28,
"target": 27 
},
{
 "source": 28,
"target": 69 
},
{
 "source": 29,
"target": 28 
},
{
 "source": 30,
"target": 19 
},
{
 "source": 31,
"target": 30 
},
{
 "source": 32,
"target": 20 
},
{
 "source": 33,
"target": 32 
},
{
 "source": 34,
"target": 30 
},
{
 "source": 35,
"target": 14 
},
{
 "source": 35,
"target": 214 
},
{
 "source": 35,
"target": 1 
},
{
 "source": 35,
"target": 21 
},
{
 "source": 35,
"target": 12 
},
{
 "source": 35,
"target": 10 
},
{
 "source": 35,
"target": 16 
},
{
 "source": 37,
"target": 36 
},
{
 "source": 38,
"target": 36 
},
{
 "source": 42,
"target": 59 
},
{
 "source": 42,
"target": 68 
},
{
 "source": 42,
"target": 55 
},
{
 "source": 42,
"target": 69 
},
{
 "source": 44,
"target": 39 
},
{
 "source": 44,
"target": 7 
},
{
 "source": 44,
"target": 8 
},
{
 "source": 48,
"target": 47 
},
{
 "source": 49,
"target": 47 
},
{
 "source": 50,
"target": 8 
},
{
 "source": 51,
"target": 8 
},
{
 "source": 52,
"target": 8 
},
{
 "source": 53,
"target": 8 
},
{
 "source": 53,
"target": 138 
},
{
 "source": 54,
"target": 8 
},
{
 "source": 55,
"target": 8 
},
{
 "source": 55,
"target": 57 
},
{
 "source": 56,
"target": 55 
},
{
 "source": 57,
"target": 52 
},
{
 "source": 58,
"target": 51 
},
{
 "source": 62,
"target": 55 
},
{
 "source": 63,
"target": 61 
},
{
 "source": 64,
"target": 61 
},
{
 "source": 64,
"target": 60 
},
{
 "source": 65,
"target": 68 
},
{
 "source": 65,
"target": 55 
},
{
 "source": 65,
"target": 69 
},
{
 "source": 66,
"target": 68 
},
{
 "source": 66,
"target": 55 
},
{
 "source": 66,
"target": 125 
},
{
 "source": 66,
"target": 59 
},
{
 "source": 66,
"target": 69 
},
{
 "source": 72,
"target": 68 
},
{
 "source": 78,
"target": 52 
},
{
 "source": 79,
"target": 79 
},
{
 "source": 80,
"target": 79 
},
{
 "source": 81,
"target": 50 
},
{
 "source": 87,
"target": 15 
},
{
 "source": 88,
"target": 15 
},
{
 "source": 89,
"target": 50 
},
{
 "source": 98,
"target": 15 
},
{
 "source": 104,
"target": 98 
},
{
 "source": 108,
"target": 214 
},
{
 "source": 109,
"target": 214 
},
{
 "source": 125,
"target": 15 
},
{
 "source": 126,
"target": 15 
},
{
 "source": 138,
"target": 15 
},
{
 "source": 139,
"target": 15 
},
{
 "source": 140,
"target": 15 
},
{
 "source": 141,
"target": 15 
},
{
 "source": 142,
"target": 15 
},
{
 "source": 143,
"target": 15 
},
{
 "source": 144,
"target": 15 
},
{
 "source": 151,
"target": 15 
},
{
 "source": 152,
"target": 15 
},
{
 "source": 153,
"target": 15 
},
{
 "source": 160,
"target": 15 
},
{
 "source": 161,
"target": 15 
},
{
 "source": 162,
"target": 15 
},
{
 "source": 168,
"target": 15 
},
{
 "source": 169,
"target": 15 
},
{
 "source": 170,
"target": 15 
},
{
 "source": 176,
"target": 15 
},
{
 "source": 177,
"target": 15 
},
{
 "source": 178,
"target": 15 
},
{
 "source": 210,
"target": 212 
} 
] 
};</script><script id="js">var dim = [960, 500];
var linkDistance = 30;

var color = d3.scale.category20();

var force = d3.layout.force()
    .charge(-120)
    .linkDistance(linkDistance)
    .size(dim);

var svg = d3.select("body").append("svg")
    .attr("width", dim[0])
    .attr("height", dim[1]);

  force
      .nodes(graph.nodes)
      .links(graph.links)
      .start();

  var link = svg.selectAll(".link")
      .data(graph.links)
      .enter().append("line")
      .attr("class", "link");
//      .style("stroke-width", function(d) { return Math.sqrt(d.value); });

  var node = svg.selectAll(".node")
      .data(graph.nodes)
    .enter().append("circle")
      .attr("class", "node")
      .attr("r", 5)
//      .style("fill", function(d) { return color(d.group); })
      .call(force.drag);

  node.append("title")
      .text(function(d) { return d.name; });

  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("cx", function(d) { return d.x; })
        .attr("cy", function(d) { return d.y; });
  });</script>
</body>
</html>
