在R环境中,是否可以通过networkD3 :: sankeyNetwork函数在用户指定颜色的链接上添加渐变?
此repo扩展了networkD3 :: sankeyNetwork的功能,但似乎仅在不使用linkGradient
参数时才允许使用LinkGroup
参数,即您只能当所有链接的颜色相同时,请使用渐变。不幸的是,我要求LinkGroup
为每个链接指定不同的颜色。
这是一个可复制的Sankey图示例,其中包含用户指定的链接颜色,但没有我要施加的渐变。
source = as.numeric(c("0", "0", "0", "0"))
target = as.numeric(c("1", "2", "3", "4"))
value = as.numeric(c("40", "10", "5", "20"))
group = c("red", "yellow", "green", "blue")
node = as.numeric(c("0", "1", "2", "3", "4"))
name = c("source", "red", "yellow", "green", "blue")
links = data.frame(source, target, value, group)
nodes = data.frame(node, name)
networkD3::sankeyNetwork(Links = links, Nodes = nodes,
Source = 'source',
Target = 'target',
Value = 'value',
NodeID = 'name',
units = 'UOM',
LinkGroup = 'group',
colourScale = JS('d3.scaleOrdinal()
.domain(["miRNA","red", "yellow", "green", "blue"])
.range(["black", "red", "yellow","green","blue"])'))
编辑:是的,有一个Java选项here,但是我正在R环境中寻找解决方案,即通过R,而不是Java。此外,该解决方案不适用于弯曲较大的链接。前面提到的repo用曲线提供了更平滑的渐变。我不知道如何从那里进行修改,以允许使用渐变的多个彩色链接。