3

RでnetworkD3パッケージを使用してネットワークを1週間プロットしようとしています。関数はsimpleNetwork正常に動作しますが、グラフの外観をあまり制御できません。関数はこのforceNetwork目的のためにあります: 豊富な視覚的特徴を持つグラフを表示します。

私が抱えている問題は、この質問で公開されているものとほとんど同じです。私はパッケージのドキュメントを注意深く読み、上記のスレッドで提案された解決策を試しましたが、うまくいきませんでした。得られるのは、それらをリンクするエッジのないノードのクラウドだけです。

ここに私data.frameのもの:

エッジ

Gene1 Gene2 Prob
  1    22    3
  2    22    6
  3    22    6
  4    22    9
  5    22    3
  6    22    4
  7    22    8
  8    22    4
  9    22    6
 10    22    8
 11    22    6
 12    22   10
 13    22    6
 14    22    3
 15    22    6
 16    22    6
 17    22    0
 18    22    4
 19    22    6
 20    22    4

垂直

Symbol Chr Expr
   1   21    9
   2   17   10
   3   17    0
   4   20    0
   5    6    9
   6    5   11
   7   12    0
   8    1   20
   9   17   11
  10   17    7
  11   17   11
  12   10    0
  13   17    0
  14    7    7
  15   17    6
  16   17    0
  17    2    5
  18    5   10
  19   17   10
  20   17    9
  21   12    4
  22    3    2

さて、これにより、上記のエッジのないノードのクラウドが生成されます。ノードに付けた実際のラベルで「シンボル」列を変更した場合も同じです(パッケージで必要なリンクテーブルの順序を尊重します)。

このパッケージは、この例でこの関数の使用を示していることに注意してください。使用されているデータセット ( MisLinks、MisNodes ) を開くと、ノードのラベルを除いて、それらのコンテンツは私のものと同じです。まったく同じ例を実行するとうまくいきます。私のデータで実行すると、そうではありません。

ネットワークをプロットするために使用する関数は次のとおりです。

forceNetwork( Links = edg, Nodes = vert, Source = "Gene1", Target = "Gene2", 
              Value = "Prob", NodeID = "Symbol", Group = "Chr", opacity = 0.7,
              colourScale = "d3.scale.category20b()", Nodesize = "Expr", zoom = T,
              legend = T )

他のすべてのプロパティ (ノード サイズ、凡例、色) は正しく表示されますが、エッジが表示されません。データセットのどこかに間違いがあるに違いありませんが、それを見つけることはできません。

4

4 に答える 4

5

私は同じ問題を抱えていました(simpleNetwork正常に動作し、forceNetwork最初にノードのみを表示し、エッジを表示せず、その後まったく表示しません)。

問題 (「0 から番号付けを開始するデータフレームを再構築」したときにおそらく修正された) は、0 ではなく 1 から始まる元のリンク データ edg でしたか?

networkD3 のドキュメントhttp://christophergandrud.github.io/networkD3/には、次の注記があります。

注: おそらく、R の 1 ベースの番号付け (つまり、R のカウントは 1 から始まります) に慣れているでしょう。ただし、networkD3 プロットは、0 ベースの JavaScript を使用して作成されます。したがって、データ リンクは 0 から開始する必要があります。

再。私も最初は問題かもしれないと思っていた間違ったデータ型、すべての異なる列 (NodeID の因子変数を除く) をキャストすることをテストしましたas.numericas.integer、データを 1 ベースではなく 0 ベースに修正しましたforceNetwork。どちらのデータ型でも正常に機能します。

お役に立てれば!

于 2016-02-28T15:59:30.523 に答える
2

自分の forceNetwork で同じ問題を修正しました。私が作成した (iGraph からエクスポートした) エッジのデータフレームには、character型ではなくint型があることがわかりました。を使用してエッジの「from」列と「to」列をキャストするas.numeric()と、問題が解決され、リンクが正しく描画されました。

これが役立つことを願っています。

よろしく、

意思

于 2016-01-11T15:09:54.950 に答える