r - R 中的forceNetwork 让人疯狂 : no edges displayed

标签 r plot htmlwidgets networkd3

我已经尝试使用 R 中的 networkD3 包绘制网络已有一周了。 simpleNetwork 函数正常工作,但它不允许对图形的外观进行太多控制。 forceNetwork 函数就是为了这个目的:显示具有丰富视觉特征的图形。

我遇到的问题与 this 中暴露的问题几乎相同问题。我仔细阅读了包文档,并尝试了上述线程中提出的解决方案,但没有成功:我得到的只是一团节点云,没有边缘连接它们。

这是我的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

嗯,这会导致上面提到的没有边缘的节点云。如果我用我放在节点上的实际标签更改“符号”列,也会发生同样的事情(尊重链接表的顺序,按照包的要求)。

请注意,该包通过 this 说明了此函数的用法例如,如果您打开使用的数据集(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 )

所有其他属性都正确显示(节点大小、图例、颜色),但我始终看不到边缘。我的数据集中一定有错误,但我无法以任何方式找到它。

最佳答案

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

问题(您可能在“重建从 0 开始编号的数据帧”时修复了该问题)是您的原始链接数据 edg,从 1 而不是 0 开始?

networkD3 文档,http://christophergandrud.github.io/networkD3/ ,有这样的注释:

Note: You are probably used to R’s 1-based numbering (i.e. counting in R starts from 1). However, networkD3 plots are created using JavaScript, which is 0-based. So, your data links will need to start from 0.

回复。不正确的数据类型,我最初也认为可能是问题所在,我测试了转换所有不同的列(NodeID 的因子变量除外)as.numericas.integer - 不过,现在将我的数据更正为基于 0 的数据而不是基于 1 的数据后,我的 forceNetwork 显示可以正常使用任一数据类型。

希望这有帮助!

关于r - R 中的forceNetwork 让人疯狂 : no edges displayed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31194888/

相关文章:

r - 更改级别时如何保持 NA

r - 将命名字符向量转换为 data.frame

python - Matplotlib.pyplot 标签不在标签中显示印地语文本,

r - 在 R 中用不同颜色绘制向量中的每 10 个数据点

jquery - 通过 jQuery 在现有网页中嵌入 R htmlwidgets?

r - 如何从包含 htmlwidget 的 rmarkdown 文件生成 md 文件

r - 在 Redhat 6.3 上安装 R 3+

r - 如何将特定颜色传输到 r 中的栅格

r - 以透明背景导出.png中的图

r - 如何使用ggplotly-R使散点图点打开超链接