2016-03-23 7 views
0

私はJsonファイルを要求したので、通常のフォースレイアウトのノードリンクグラフが必要です。私のJSONファイルで 、ノード:D3- Jsonネストされたキーの値のためのアプローチ

  1. 属し

  2. 各リストは、ノードに依存して、複数のリストに、持っている別のサブリスト

例えば:

ノードAはリスト1と2に属します。また、リスト1では、ノードAはサブリストA * とB *を持ち、ウィットhリスト2、ノードAはサブリストB *を有する。

ノードBはまた、1をリストに属しているが、私のJSONは、ビジネス・ロジック・プロセスを必要とし、配列の配列としてであろうと私には思えただけのサブリストA *

持つことができます。

どのように私はそれにアプローチする必要がありますか?私のJsonの構造はどのようなものでなければならず、バインド後にD3を使ってアクセスできるかどうか?

+1

は重要なリストとサブリストです(もしそうなら、どのように表現したいのですか?)または、ノードを取得するためにすべてのリストの "結合"を行うだけで、リンクは他の場所から来ていますか? – tarulen

答えて

1

2つのグラフがあるようです。おそらく最も簡単なのは、ノード、リスト、「ノード内のリスト」、「ノードのサブリスト」に対して、異なる配列を持つことです。

{ 
nodes = [ {name: "A"}, 
      {name:"B"} ], 
lists = [ {name:"List1"}, 
      {name:"List2"}, 
      {name:"A*"}, 
      {name:"B*"} ], 
nodeInList = [ //which node belong to which list? source = index of node, target=index of list 
       {source: 0, target:1}, //A in List1 
       {source: 0, target:2}, //B in List1 
       ... 
       ], 
sublistInNode = [//which lists are sublists of which nodes? source=index of list, target = index of list 
        {source: 2, target:0}, //A* sublist of A 
        {source: 2, target:1}, //A* sublist of B 
        ... 
       ] 
} 

今、力のレイアウトのために、あなたはすべてのノードの配列とすべてのリンクの配列を必要とする:

​​

あなたは今リストを表現するために箱から出しd3.forceレイアウトを使用することができます/ノード関係。あなたは、グラフを描画する際

スタイリング目的のために、あなたはおそらくなど、彼らは、ノード、リストされているかどうかを区別するために、ノードとリンクに「タイプ」フィールドを追加する必要があります

関連する問題