在R中使用forceNetwork变得疯狂:没有显示边缘

Faa*_*ioo 3 plot r networkd3 htmlwidgets

我一直试图在R中使用networkD3包绘制网络一周.该simpleNetwork功能正常工作,但它不能很好地控制图形的外观.该forceNetwork功能就是为了这个目的:显示具有丰富视觉特征的图形.

我遇到的问题几乎与问题相同.我仔细阅读了包文档,并尝试了上述线程中提出的解决方案,没有运气:我得到的是一个没有边连接它们的节点云.

我的data.frames:

EDG

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
Run Code Online (Sandbox Code Playgroud)

VERT

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
Run Code Online (Sandbox Code Playgroud)

那么,这导致上面提到的没有边缘的节点云.如果我将"符号"列更改为我放在节点上的实际标签(根据包的要求,遵循Links'表的顺序),也是如此.

请注意,该软件包说明了示例在示例中的使用,如果您打开所使用的数据集(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 )
Run Code Online (Sandbox Code Playgroud)

每个其他属性都正确显示(节点大小,图例,颜色),但我一直看不到边缘.在我的数据集中某处肯定存在错误,我无法以任何方式找到它.

小智 5

我遇到了同样的问题(simpleNetwork正常工作,forceNetwork首先只显示节点,没有边缘,然后根本没有显示).

问题(当你"重建从0开始编号的数据帧"时,你可能修复了这个问题)是原始的链接数据edg,从1开始而不是0?

networkD3文档http://christophergandrud.github.io/networkD3/有这样的说明:

注意:您可能习惯于R的基于1的编号(即从R开始计数从1开始).但是,networkD3图是使用JavaScript创建的,它是基于0的.因此,您的数据链接需要从0开始.

回覆.不正确的数据类型,我最初认为可能是问题,我测试了所有不同的列(NodeID的因子变量除外)as.numericvs as.integer- 但现在已经将我的数据更正为0而不是基于1,我的forceNetwork显示适用于任何一种数据类型.

希望这可以帮助!