在力导向网络 networkD3::forceNetwork() 中为每个 link 指定颜色
Specify colors for each link in a force directed network, networkD3::forceNetwork()
问题是在R中使用networkD3::forceNetwork
根据link的值或权重指定两种不同的颜色。例如Blue
代表[=25的权重=]s大于1,dark
为权重links小于1。
示例代码,复制自 here(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相关的问题是here(到目前为止我对JS一无所知)。
我认为您应该能够将包含在 JS
中的 javascript 函数传递给 linkColour
以根据 MisLinks 中的值获取颜色。例如,return 蓝色链接表示值 > 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" }'))
我在使用 networkD3
时遇到了同样的问题。
您可以通过使用 ifelse
函数根据 MisLinks$value
的值提供向量来做到这一点:
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
。
希望这有帮助。
问题是在R中使用networkD3::forceNetwork
根据link的值或权重指定两种不同的颜色。例如Blue
代表[=25的权重=]s大于1,dark
为权重links小于1。
示例代码,复制自 here(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相关的问题是here(到目前为止我对JS一无所知)。
我认为您应该能够将包含在 JS
中的 javascript 函数传递给 linkColour
以根据 MisLinks 中的值获取颜色。例如,return 蓝色链接表示值 > 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" }'))
我在使用 networkD3
时遇到了同样的问题。
您可以通过使用 ifelse
函数根据 MisLinks$value
的值提供向量来做到这一点:
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
。
希望这有帮助。