【问题标题】:Sankey network manual colour changeSankey网络手动换色
【发布时间】:2018-01-26 09:54:36
【问题描述】:

我正在尝试使用 networkD3 库构建 sankey plot。我有以下代码和数据:

# Plotting the Sankey network diagram
nodes = data.frame("name" = 
                     c("Mamalian", # Node 0
                       "Avian", # Node 1
                       "Critical", # Node 2
                       "Critical-maintained", # Node 3
                       "Endangerd", #Node 4
                       "Endangered-maintained", #Node 5
                       "Not at risk")) # Node 6

links = as.data.frame(matrix(c(
  0, 2, 16, # Note the values in the final column refer to the % of breeds in each risk category
  0, 3, 2.2, 
  0, 4, 17.6, 
  0, 5, 7.0,
  0, 6, 57.2,
  1, 2, 23.9, 
  1, 3, 1.3, 
  1, 4, 24.7, 
  1, 5, 13.1,
  1, 6, 37.0),
  byrow = TRUE, ncol = 3))
names(links) = c("source", "target", "value")
sankeyNetwork(Links = links, Nodes = nodes,
              Source = "source", Target = "target",
              Value = "value", NodeID = "name",
              fontSize= 12, nodeWidth = 30, iterations = 0)

我想手动更改与每个节点关联的颜色,因为它们当前与我列出的濒危类别不对应。我该怎么做?

结果如下:

【问题讨论】:

  • this post,你可以为节点数据框定义一个“组”,然后每个节点将被分配一些颜色。但是看不到我们如何设置自定义颜色,也许使用colourScale

标签: r sankey-diagram networkd3


【解决方案1】:

使用colourScale 参数设置自定义JS/D3 色阶。 (我用- 替换了你名字中的空格,因为d3.scaleOrdinal() 不喜欢它们)。使用示例中的数据/对象....

nodes$group <- gsub(" ", "-", nodes$name)

color_scale <- 
  "d3.scaleOrdinal()
     .domain(['Mamalian', 'Avian', 'Critical', 'Critical-maintained', 
              'Endangerd', 'Endangered-maintained', 'Not-at-risk'])
     .range(['#000', '#F00', '#0F0', '#00F', '#FF0', '#F0F', '#0FF']);
  "
sankeyNetwork(Links = links, Nodes = nodes,
              Source = "source", Target = "target",
              Value = "value", NodeID = "name", 
              fontSize= 12, nodeWidth = 30, iterations = 0,
              NodeGroup = "group", colourScale = color_scale)

【讨论】:

  • CJ Yetman,非常感谢。你所有关于桑基图的答案都对我有很大帮助。
猜你喜欢
  • 2017-02-27
  • 1970-01-01
  • 2014-11-08
  • 2018-01-07
  • 2022-11-02
  • 1970-01-01
  • 2012-02-21
  • 2023-03-12
  • 2020-02-24
相关资源
最近更新 更多