【问题标题】:How to color groups in networkD3's sankeyNetwork?如何在 networkD3 的 sankeyNetwork 中为组着色?
【发布时间】:2016-06-19 20:03:34
【问题描述】:

我的节点由名称和组组成,但我似乎无法在我的 sankey 图中为组实现不同的颜色。颜色要么是默认的全蓝色,要么是使用下面的代码全黑。

这是我使用的代码:

sankeyNetwork(        
Links = data$links,
Nodes = data$nodes,
Source= "source",
Target = "target",
Value = "weight",
NodeID = "names",
fontSize = 15,
NodeGroup = "group" 
))

这是我得到的输出:

【问题讨论】:

  • 请包含一个生成绘图的小数据集。

标签: r d3.js sankey-diagram htmlwidgets networkd3


【解决方案1】:

Nodes 数据框中的NodeGroup 向量必须是非数字的。这在文档中并不明显。因为您没有提供您正在使用的数据,我们无法确定这是否是您遇到的问题,但在 @john-friel 所做的示例中,这就是问题所在。这是一个工作示例,唯一的变化是 group 向量被强制转换为字符向量...

library(networkD3)
source <- c(0,1,2,3,4,5)
target <- c(2,2,2,3,1,0)
value <- c(33,44,55,66,77,88)

sankeydata <- data.frame(source,target, value)

names <- c('a', 'b', 'c', 'd', 'e', 'f')
id <- c(0,1,2,3,4,5)
group <- as.character(c(1,1,1,2,2,2)) # this is the only line changed

sankeyNodes <- data.frame(names,id, group)


sankeyNetwork(Links = sankeydata, Nodes = sankeyNodes, Source = "source",
         Target = "target", Value = "value", NodeID = "names", 
         NodeGroup = "group", fontSize = 12, nodeWidth = 30)

【讨论】:

    【解决方案2】:
    library(networkD3)
    source <- c(0,1,2,3,4,5)
    target <- c(2,2,2,3,1,0)
    value <- c(33,44,55,66,77,88)
    
    sankeydata <- data.frame(source,target, value)
    
    names <- c('a', 'b', 'c', 'd', 'e', 'f')
    id <- c(0,1,2,3,4,5)
    group <- c(1,1,1,2,2,2)
    
    sankeyNodes <- data.frame(names,id, group)
    
    
    sankeyNetwork(Links = sankeydata, Nodes = sankeyNodes, Source = "source",
             Target = "target", Value = "value", NodeID = "names", NodeGroup = "group", fontSize = 12, nodeWidth = 30)
    

    我希望有两种颜色(因为有两组),但没有颜色返回。我和OP有同样的问题。

    帮助文本建议 NodeGroup 负责颜色。

    如果你在 library(networkD3) 中为另一个图运行类似的代码:

    #same data
    forceNetwork(Links = sankeydata, Nodes = sankeyNodes , Source = "source",
             Target = "target", Value = "value", NodeID = "names",
             Group = "group", opacity = 0.8, zoom = TRUE)
    

    在网络图中绘制两种不同的颜色。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-11
      • 2016-11-04
      • 1970-01-01
      • 1970-01-01
      • 2018-04-23
      • 2016-05-18
      相关资源
      最近更新 更多