手动将节点添加到JavaScript InfoVis Toolkit强制定向图

bha*_*is9 5 javascript asp.net visualization data-visualization infovis

我正在尝试使用在此处找到的JavaScript InfoVis Toolkit:JS InfoVis ToolKit创建强制定向图。我们实际上并不想使用JSON将数据“馈送”到图形中,而是希望手动添加节点。

我整理了以下代码-但是,当我尝试绘制图形时,在jit.js(var root = aGraph.getNode(id);)的7118行中找不到我的根节点。我已经省略了我的ForceDirected选项的详细信息-但这些不应影响结果。

        fd = new $jit.ForceDirected({...}) 
        //Create main node
        var rootNode = { id: "root", name: "Actors", data: { "$color": "#557EAA"} }
        fd.root = rootNode;
        fd.graph.addNode(rootNode);

        $.each(array, function (index, art) {
            var pubId = art.pubMedId.toString();
            var labelText = "Article " + pubId;
            var node = { id: pubId.toString(), name: labelText, data: { "$color": "#557EAA"} }

            //Create Nodes -- connect them to main node for now
            fd.graph.addNode(node);
            fd.graph.addAdjacence(rootNode, node, {});

            text = text + art.pubMedId + ',';
        });

        //Display graph
        fd.plot();
Run Code Online (Sandbox Code Playgroud)

有没有人有这样做的经验?寻找指导。我已经在FireBug中进行了调试,所有内容似乎都已正确加载到图中(即-所有节点都存在)。我很茫然。

Ste*_*lph 3

相反fd.root = rootNode;,您想使用fd.root = rootNode.id;. 我对此也感到惊讶。

此外,您可能需要在添加根节点之前初始化图表:

fd.graph = new $jit.Graph(fd.graphOptions, fd.config.Node, fd.config.Edge, fd.config.Label);

注意:使用 2.0.1 版本进行测试。