gpt4 book ai didi

r - 桑基网络手动换色

转载 作者:行者123 更新时间:2023-12-01 02:36:21 25 4
gpt4 key购买 nike

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

# 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)

我想手动更改与每个节点关联的颜色,因为它们目前不符合我列出的濒危类别。我怎样才能做到这一点?

结果如下:
enter image description here

最佳答案

使用 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)

关于r - 桑基网络手动换色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48459033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com