有沒有辦法使用 NetworkD3 選擇特定節點以更改其顏色?
這是我的代碼。我想使用customJS來實作!
p <- forceNetwork(Links = links,
Nodes = nodes,
Source = 'source',
Target = 'target',
NodeID = 'name',
Group = 'group',
Value = "value",
Nodesize = 'size',
radiusCalculation = JS("d.nodesize/2"),
zoom = TRUE,
arrows = FALSE,
linkWidth = JS("function(d){return d.value;}"),
linkDistance = JS("function(d){return d.value*100}"),
charge = gravity,
opacity = 0.95,
fontSize = 24,
bounded = FALSE,
linkColour = "#424242"
)
customJS <-
"function() {
d3.selectAll('.node text').style('fill', 'white').attr('stroke-width', '.1px').attr('stroke', '#3f3f3f');
d3.select('body').style('background-color', '#15171A');
simulation = this;
simulation.stop();
for (var i = 0; i < 300; i) simulation.tick();
simulation.restart();
}"
g <- htmlwidgets::onRender(p, customJS)
uj5u.com熱心網友回復:
控制節點顏色的規范方法是使用Group引數在nodesdata.frame 中指定一個列,該列為每個節點指定一個組。您可以在一個唯一的組中擁有一個節點和/或您可以在一個組中擁有多個節點,并且您可以擁有任意數量的組(至少假設,但顯然受限于您的機器資源和顏色數量/可以有效地在您的螢屏上看到的組)。
默認情況下,每個組的顏色都是從默認的 D3 調色板中自動選擇的。如果要指定不同的調色板,或者要為特定組指定特定顏色,則可以修改colourScale引數的默認值。
library(networkD3)
data(MisLinks)
data(MisNodes)
MisNodes$group <- ifelse(as.character(MisNodes$name) > "M", "group_1", "group_2")
colourScale <- 'd3.scaleOrdinal().domain(["group_1", "group_2"]).range(["#FF0000", "#0000FF"]);'
forceNetwork(Links = MisLinks, Nodes = MisNodes, Source = "source",
Target = "target", Value = "value", NodeID = "name",
Group = "group", opacity = 1, colourScale = colourScale)

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/491655.html
標籤:javascript r d3.js htmlwidgets 网络d3
下一篇:D3js強制有向圖改變連接強度
