我正在尝试使用此处的JavaScript InfoVis Toolkit:JS InfoVis ToolKit来创建一个Force Directed Graph。我们真的不想使用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();
有没有人有这方面的经验?寻找指导。我在FireBug中进行了调试,所有内容似乎都正确加载到图中(即 - 所有节点都存在)。我很茫然。
答案 0 :(得分: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版测试。