【问题标题】:ColourScale ForceNetwork (NetworkD3) in R ShinyR Shiny 中的 ColourScale ForceNetwork (NetworkD3)
【发布时间】:2017-09-19 11:46:33
【问题描述】:

在 forcenetwork 中,我找到了组和色标来为网络中的节点着色。我想要 2 个不同的组(根据用户在 2 个不同变量之间的输入将颜色应用于节点)。有可能吗?如果是,怎么做?

Forcenetwork - https://www.rdocumentation.org/packages/networkD3/versions/0.4/topics/forceNetwork

任何形式的帮助都会很有用。 谢谢!

【问题讨论】:

    标签: r shiny htmlwidgets networkd3


    【解决方案1】:

    colourScale 参数确定调色板,而group 参数确定节点数据框中的向量名称,其中包含用于区分每个节点组的值。 networkD3 自动从调色板中为数据中的每个不同组选择一种唯一颜色,并将该颜色应用于该组中的每个节点。

    library(networkD3)
    
    links <- read.table(header = T, text = "
    source  target  value
    0       1       1
    1       2       1
    2       0       1
    0       3       1
    3       4       1
    4       5       1
    5       3       1
    ")
    
    nodes <- read.table(header = T, text = "
    name    group
    zero    1
    one     1
    two     1
    three   2
    four    2
    five    2
    ")
    
    forceNetwork(Links = links, Nodes = nodes, 
                 Source = "source", Target = "target", Value = "value", 
                 NodeID = "name", Group = "group", 
                 colourScale = JS("d3.scaleOrdinal(d3.schemeCategory10);"))
    

    如果您的数据中有两个单独的变量共同确定每个节点的组,您应该在将它们传递给forceNetwork()...之前将它们组合到您的数据中...

    nodes <- read.table(header = T, text = "
    name    group1  group2
    zero    A       D
    one     B       E
    two     C       F
    three   A       E
    four    B       F
    five    C       D
    ")
    
    nodes$group <- paste(nodes$group1, nodes$group2, sep = "_")
    
    forceNetwork(Links = links, Nodes = nodes, 
                 Source = "source", Target = "target", Value = "value", 
                 NodeID = "name", Group = "group", 
                 colourScale = JS("d3.scaleOrdinal(d3.schemeCategory10);"))
    

    【讨论】:

    • 是的。我知道这个。我可以有多于一组吗?类似于 Group = c("group1", "group2")
    • 我的示例中有两个组:组“1”和组“2”。
    • 我在回答中澄清了 group 参数的解释......也许这引起了混乱?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-15
    • 2017-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多