1.0.818 • Published 7 years ago

custom-3d-force-graph v1.0.818

Weekly downloads
111
License
-
Repository
github
Last release
7 years ago

3D Force-Directed Graph

NPM

A web component to represent a graph data structure in a 3-dimensional space using a force-directed iterative layout. Uses ThreeJS/WebGL for 3D rendering and either d3-force-3d or anvaka's ngraph for the underlying physics engine.

See also the VR version.

Live example: http://bl.ocks.org/vasturiano/02affe306ce445e423f992faeea13521

Quick start

import ForceGraph3D from '3d-force-graph';

or

var ForceGraph3D = require('3d-force-graph');

or even

<script src="//unpkg.com/3d-force-graph"></script>

then

var myGraph = ForceGraph3D();
myGraph(<myDOMElement>)
    .graphData(<myData>);

API reference

MethodDescriptionDefault
width(px)Getter/setter for the canvas width.<window width>
height(px)Getter/setter for the canvas height.<window height>
graphData(data)Getter/setter for graph data structure (see below for syntax details). Can also be used to apply incremental updates.{ nodes: [], links: [] }
jsonUrl(url)URL of JSON file to load graph data directly from, as an alternative to specifying graphData directly.
numDimensions(int)Getter/setter for number of dimensions to run the force simulation on (1, 2 or 3).3
nodeRelSize(num)Getter/setter for the ratio of node sphere volume (cubic px) per value unit.4
nodeResolution(num)Getter/setter for the geometric resolution of each node, expressed in how many slice segments to divide the circumference. Higher values yield smoother spheres.8
lineOpacity(num)Getter/setter for line opacity of links, between 0,1.0.2
autoColorBy(str or fn)Node object accessor function (fn(node)) or attribute (e.g. 'type') to automatically group colors by. Only affects nodes without a color attribute.
idField(str)Node object accessor attribute for unique node id (used in link objects source/target).'id'
valField(num, str or fn)Node object accessor function, attribute or a numeric constant for the node numeric value (affects sphere volume).'val'
nameField(str or fn)Node object accessor function or attribute for name (shown in label).'name'
colorField(str or fn)Node object accessor function or attribute for node color (affects sphere color).'color'
onNodeClick(fn)Callback function for node clicks. The node object is included as single argument onNodeClick(node).-
linkSourceField(str)Link object accessor attribute referring to id of source node.'source'
linkTargetField(str)Link object accessor attribute referring to id of target node.'target'
forceEngine(str)Getter/setter for which force-simulation engine to use (d3 or ngraph).'d3'
warmupTicks(int)Getter/setter for number of layout engine cycles to dry-run at ignition before starting to render.0
cooldownTicks(int)Getter/setter for how many build-in frames to render before stopping and freezing the layout engine.Infinity
cooldownTime(num)Getter/setter for how long (ms) to render for before stopping and freezing the layout engine.15000
resetProps()Reset all component properties to their default value.

Input JSON syntax

{
    "nodes": [ 
        { 
          "id": "id1",
          "name": "name1",
          "val": 1 
        },
        { 
          "id": "id2",
          "name": "name2",
          "val": 10 
        },
        (...)
    ],
    "links": [
        {
            "source": "id1",
            "target": "id2"
        },
        (...)
    ]
}
1.0.818

7 years ago

1.0.817

7 years ago

1.0.816

7 years ago

1.0.815

7 years ago

1.0.814

7 years ago

1.0.813

7 years ago

1.0.812

7 years ago

1.0.811

7 years ago

1.0.81

7 years ago

1.0.80

7 years ago

1.0.79

7 years ago

1.0.78

7 years ago

1.0.77

7 years ago

1.0.76

7 years ago

1.0.75

7 years ago

1.0.74

7 years ago

1.0.73

7 years ago

1.0.72

7 years ago

1.0.71

7 years ago

1.0.70

7 years ago

1.0.69

7 years ago

1.0.68

7 years ago

1.0.67

7 years ago

1.0.66

7 years ago

1.0.65

7 years ago

1.0.64

7 years ago

1.0.63

7 years ago

1.0.62

7 years ago

1.0.61

7 years ago

1.0.6

7 years ago

1.0.5

7 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago