簡體   English   中英

選擇特定節點 NetworkD3

[英]Select Specific Node NetworkD3

有沒有辦法使用 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)

控制節點顏色的規范方法是使用Group參數在nodes data.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)

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM