如何用networkD3在R中绘制有向图?

Ami*_*r.S 2 r directed-graph d3.js networkd3 htmlwidgets

当我使用NetworkD3绘制有向图时,边缘不是定向的,我该如何修复它?一个例子 :

library(networkD3)
data(MisLinks)
data(MisNodes)
forceNetwork(Links = MisLinks, Nodes = MisNodes,
         Source = "source", Target = "target",
         Value = "value", NodeID = "name",
         Group = "group", opacity = 0.8)
Run Code Online (Sandbox Code Playgroud)

我希望结果被定向这是有向图的定义:

"有向图是图形,即连接在一起的一组对象(称为顶点或节点),其中所有边缘都从一个顶点指向另一个顶点.有向图有时被称为有向图或有向网络.

我希望边缘像箭一样,我怎么能在networkD3中做到这一点,我希望它很清楚.

谢谢.

CJ *_*man 9

forceNetwork()该networkD3包的功能不会对有向图的链接绘制箭头.我可以肯定地说,因为我是当前活跃的开发人员之一,我非常了解该功能及其选项.您还可以?networkD3::forceNetwork在R控制台中运行以查看帮助文件以及该forceNetwork()功能的所有可能选项.

更新时间(2017.03.20)

此功能(绘制有向图的箭头)现在是CRAN官方版本的一部分networkD3.安装完成后,您可以绘制带有箭头的定向forceNetwork ...

library(networkD3)
URL <- paste0("https://cdn.rawgit.com/christophergandrud/networkD3/",
              "master/JSONdata/miserables.json")
MisJson <- jsonlite::fromJSON(URL)
ValjeanInds <- which(MisJson$links == 11, arr = TRUE)[, 1]
ValjeanCols <- ifelse(1:nrow(MisJson$links) %in% ValjeanInds, "#bf3eff", "#666")

forceNetwork(Links = MisLinks, Nodes = MisNodes, Source = "source", Target = "target", 
             Value = "value", NodeID = "name", Group = "group", opacity = 0.8, 
             linkColour = ValjeanCols, arrows = TRUE, zoom = TRUE)
Run Code Online (Sandbox Code Playgroud)

它应该看起来像...... 用箭头指示forceNetwork

  • 是的,谢谢,我以前用过,但是结果(图形)不是交互式的。 (2认同)
  • 我正在研究networkD3的一个新分支,它将向链接线添加箭头.您可以通过从github安装来测试它..."devtools :: install_github('cjyetman/networkD3',ref ='directed_arrows')`.然后将`arrow = TRUE`添加到`forceNetwork()`调用,它应该使用箭头.我对你的反馈很感兴趣. (2认同)