代码之家  ›  专栏  ›  技术社区  ›  roadfar

如何使用networkD3库设置sankey绘图中节点的颜色

  •  2
  • roadfar  · 技术社区  · 8 年前

    我使用了下面的R代码,得到了下面的图表。但我想将节点的颜色从绿色更改为黑色。我尽力找到了相关的方法或参数,但没有找到。

    library(networkD3)
    
    source <- c(0,1,3,4,4)
    target <- c(2,2,1,1,0)
    value <- c(33,44,66,77,88)
    link_group <- as.character(c('a', 'b', 'c', 'd', 'e'))
    
    
    sankeydata <- data.frame(source,target, value, link_group)
    sankeydata
    names <- c('a', 'b', 'c', 'd', 'e')
    id <- c(0,1,2,3,4)
    group <- as.character(c(1,1,1,1,1))
    
    sankeyNodes <- data.frame(names,id,group)
    
    sankeyNetwork(Links = sankeydata, Nodes = sankeyNodes, Source = "source", colourScale = JS(
      'd3.scaleOrdinal()  
      .domain(["a","b","c","d","e"])
      .range(["#B3E2CD","#FDCDAC","#CBD5E8","#F4CAE4","#E6F5C9"])'), 
      Target = "target", Value = "value", NodeID = "names", LinkGroup = "link_group", units = "Quads",
      NodeGroup = "group", fontSize = 15, nodeWidth = 20,fontFamily = "Arial")
    

    the output plot

    1 回复  |  直到 8 年前
        1
  •  4
  •   Prem    8 年前

    您需要添加黑色 #000000 分配给节点组 1 在您的 colourScale 释义

    colourScale = JS('d3.scaleOrdinal().domain(["1", "a", "b", "c", "d", "e"]).
                     range(["#000000","#B3E2CD","#FDCDAC","#CBD5E8","#F4CAE4","#E6F5C9"])')