手动向JavaScript InfoVis Toolkit力导向图添加节点

5
我正在尝试使用此处找到的JavaScript InfoVis Toolkit: JS InfoVis ToolKit 来创建一个力导向图。我们不想使用JSON来“提供”图形数据,而是更愿意手动添加节点。
我已经编写了以下代码,但当我尝试绘制图形时,在jit.js的第7118行中找不到我的根节点(var root = aGraph.getNode(id);)。我省略了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();

有人有做过这个的经验吗?寻求指导。我已经在FireBug中进行了调试,一切似乎都正确地加载到了图表中(即-所有节点都存在)。我很困惑。

1个回答

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。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接