首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择特定节点NetworkD3

选择特定节点NetworkD3
EN

Stack Overflow用户
提问于 2022-06-14 14:51:44
回答 1查看 37关注 0票数 1

是否有一种使用NetworkD3来选择特定节点以改变其颜色的方法?

这是我的密码。我想用customJS来实现这一点!

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-14 20:24:37

控制节点颜色的规范方法是使用Group参数在nodes data.frame中指定列,该列为每个节点指定一个组。您可以在一个唯一的组中有一个节点和/或在一个组中有多个节点,您可以拥有任意数量的组(至少假设如此,但显然受到计算机的资源和屏幕上可以有效看到的颜色/组的数量的限制)。

默认情况下,每个组的颜色是从默认的D3调色板中自动选择的。如果要指定不同的调色板,或者要为特定组指定特定颜色,则可以修改colourScale参数的默认值。

代码语言:javascript
复制
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)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72619096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档