如何在R googleVis sankey图表中更改节点和链接的颜色?并且链接与其原始节点具有相同的颜色?
library(googleVis)
datSK <- data.frame(From=c(rep("A",3), rep("B", 3)),
To=c(rep(c("X", "Y", "Z"),2)),
Weight=c(5,7,6,2,9,4))
Sankey <- gvisSankey(datSK, from="From", to="To", weight="Weight",
options=list(
sankey="{link: {color: { fill: '#d799ae' } },
node: { color: { fill: '#a61d4c' },
label: { color: '#871b47' } }}"))
plot(Sankey)
一旦必须为来自2个原始节点的链接着色,您就需要2种颜色的链接。另外,您总共有5个节点,因此需要5种颜色。
让我们创建2个JSON格式的数组,并为节点和链接添加颜色
colors_link <- c('green', 'blue')
colors_link_array <- paste0("[", paste0("'", colors_link,"'", collapse = ','), "]")
colors_node <- c('yellow', 'lightblue', 'red', 'black', 'brown')
colors_node_array <- paste0("[", paste0("'", colors_node,"'", collapse = ','), "]")
接下来,将该数组插入选项:
opts <- paste0("{
link: { colorMode: 'source',
colors: ", colors_link_array ," },
node: { colors: ", colors_node_array ," }
}" )
最后绘制图:
plot( gvisSankey(datSK, from="From", to="To", weight="Weight",
options=list(
sankey=opts)))
请注意,在选项中,colorMode设置为'source',这意味着您希望为来自原始节点的链接着色。或者,将“目标”设置为目标节点的颜色链接
编辑:添加多级sankeys的描述
查找如何为多级sankey分配颜色有点棘手。
我们需要创建其他日期框架:
datSK <- data.frame(From=c(rep("A",3), rep("B", 3), rep(c("X", "Y", "Z"), 2 )),
To=c(rep(c("X", "Y", "Z"),2), rep("M", 3), rep("N", 3)),
Weight=c(5,7,6,2,9,4,3,4,5,6, 4,8))
在这里,我们只需要更改颜色数组。构建图的命令是相同的假设我们想要这些颜色用于节点和链接:
colors_link <- c('green', 'blue', 'yellow', 'brown', 'red')
colors_link_array <- paste0("[", paste0("'", colors_link,"'", collapse = ','), "]")
colors_node <- c('yellow', 'lightblue', 'red', 'black', 'brown', 'green', 'brown')
colors_node_array <- paste0("[", paste0("'", colors_node,"'", collapse = ','), "]")
结果将是:
最棘手的部分是了解如何分配这些颜色:
对于节点,将在顺序图中分配颜色。
有关如何设置sankey图表格式的更多详细信息:https : //developers.google.com/chart/interactive/docs/gallery/sankey
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句