Zhi*_*Jia 6 javascript r shiny networkd3
问题是根据networkD3::forceNetworkR中使用的链接的值或权重指定两种不同的颜色.例如,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)
Run Code Online (Sandbox Code Playgroud)
一D3-JS相关的问题是在这里(我什么都不知道JS到目前为止).
我认为您应该能够传递包含在其中的javascript函数,JS以linkColour根据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" }'))
Run Code Online (Sandbox Code Playgroud)
我刚刚在使用 时遇到了同样的问题networkD3。您可以通过根据使用该函数
的值提供一个向量来做到这一点:MisLinks$valueifelse
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"))
Run Code Online (Sandbox Code Playgroud)
这个解决方案不依赖于知道javascript。
希望这可以帮助。