6

问题是根据 R 中使用的链接的值或权重指定两种不同的颜色networkD3::forceNetwork。例如,Blue对于大于 1 的链接dark的权重,对于小于 1 的链接的权重。

示例代码,从此处复制(该forceNetwork部分):

library(networkD3)
# Load data
data(MisLinks)
data(MisNodes)

# Plot
forceNetwork(Links = MisLinks, Nodes = MisNodes,
        Source = "source", Target = "target",
        Value = "value", NodeID = "name",
        Group = "group", opacity = 0.8)

一个与 d3-js 相关的问题在这里(到目前为止我对 JS 一无所知)。

4

2 回答 2

7

我认为您应该能够传递一个包含在其中的 javascript 函数JSlinkColour根据 MisLinks 中的值获取颜色。例如,对于值 > 1 返回蓝色链接,对于值 <= 1 返回红色链接。

forceNetwork(Links = MisLinks, Nodes = MisNodes,
             Source = "source", Target = "target",
             Value = "value", NodeID = "name",
             Group = "group", opacity = 0.8,
             linkColour = JS('function(l) { return l.value > 1 ? "#00F" : "#F00" }'))
于 2015-12-27T17:14:07.160 回答
5

我刚刚遇到了同样的问题networkD3
您可以通过根据MisLinks$value使用ifelse函数的值提供一个向量来做到这一点:

forceNetwork(Links = MisLinks, Nodes = MisNodes,
         Source = "source", Target = "target",
         Value = "value", NodeID = "name",
         Group = "group", opacity = 0.8,
         linkColour = ifelse(MisLinks$value > 1, "blue","black"))

这个解决方案不依赖于知道javascript
希望这可以帮助。

于 2016-09-30T01:23:34.013 回答