如何在R googleVis sankey图表中更改节点和链接颜色

三德

如何在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)
瓦迪姆B.

一旦必须为来自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 = ','), "]")

结果将是:

在此处输入图片说明

最棘手的部分是了解如何分配这些颜色:

  1. 链接按在数据集中显示的顺序分配(row_wise)

在此处输入图片说明

  1. 对于节点,将在顺序图中分配颜色。

    • 从A到X,Y,Z-绿色
    • 从X到M,N-蓝色
    • 从Y到M,N-黄色
    • 从Z到M,N-棕色
    • 从B到X,Y,Z-红色

有关如何设置sankey图表格式的更多详细信息:https : //developers.google.com/chart/interactive/docs/gallery/sankey

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章