当我使用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)
我希望结果是有向的这是有向图的定义:
“有向图是图,即一组连接在一起的对象(称为顶点或节点),其中所有边从一个顶点指向另一个顶点。有向图有时称为有向图或有向网络。”
我希望边缘像箭头一样,我该如何在networkD3中做到这一点,希望它清楚。
谢谢。
最佳答案
networkD3软件包的forceNetwork()
函数不会在有向图的链接上绘制箭头。我可以肯定地说,因为我是该软件包的当前活跃开发人员之一,并且我对函数及其选项非常了解。您也可以在R控制台中运行?networkD3::forceNetwork
,以查看帮助文件和forceNetwork()
函数的所有可能选项。
更新(2017.03.20)
此功能(有向图的绘制箭头)现在是networkD3
的CRAN官方发行版的一部分。安装完成后,您可以绘制带箭头的有向力网络,其中包含...
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)
它应该看起来像...