5

ここにある JavaScript InfoVis Toolkit を使用しようとしています: JS InfoVis ToolKitを使用して Force Directed Graph を作成します。データをグラフに「フィード」するために 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 でデバッグしたところ、すべてがグラフに正しくロードされているように見えます (つまり、すべてのノードが存在します)。私は途方に暮れています。

4

1 に答える 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 でテスト済み。

于 2013-03-18T20:56:56.370 に答える