首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R河图Sankey图中随机指定的颜色

在R河图Sankey图中随机指定的颜色
EN

Stack Overflow用户
提问于 2015-04-05 05:12:34
回答 2查看 853关注 0票数 1

我发现R riverplot包在制作Sankey/Minard图表方面非常方便。输出的图表很棒,包括节点的位置和边的宽度。

但是,我对颜色有个问题。我通过节点中的"col“列分配了颜色,但输出的颜色与我指定的颜色完全不匹配。我尝试删除所有颜色,一次分配一种颜色,然后添加第二种颜色,等等,但我在错误的分配中找不到任何逻辑。它看起来完全是随机的,甚至添加了我不在指定列表中的颜色。

为了便于处理,我将节点和边作为两个单独的文件加载。

下面是我的可重现的例子:

代码语言:javascript
复制
#######################
R CODE: 
#######################
library(riverplot)

ruk_sankey_edges <- read.table("/.../ruk_sankey_edges.csv", header = TRUE, na.strings = "''", sep = ";",  dec=".")

ruk_sankey_nodes <- read.table("/.../ruk_sankey_nodes.csv", header = TRUE, na.strings = "''", sep = ";",  dec=".")

nodes <- ruk_sankey_nodes

edges <- ruk_sankey_edges

colnames( nodes ) <- c( "ID", "x", "y", "col")

colnames( edges ) <- c( "ID", "N1", "N2", "Value")

river <- makeRiver( nodes, edges, node_labels = NULL, node_xpos = nodes$x, node_ypos = nodes$y)

style <- list(col = nodes$col )

riverplot(river, lty = 0, default_style = style, srt = 0, 
node_margin = 0.1, nodewidth = 1, plot_area = 0.8, nsteps = 50,
add_mid_points = NULL, yscale = "auto")

#######################
AND THE DATA FILES:

#######################
ruk_sankey_nodes.csv : 

ID;X;Y;col

A1;5;70;gray

A2;10;90;red

A3;10;65;gray

A4;20;85;gray

A5;30;105;green

A6;30;95;cyan

A7;30;85;mangenta

A8;30;75;yellow

A9;20;45;gray

A10;30;60;blue

A11;30;40;black

#######################
ruk_sankey_edges.csv : 

ID;ID1;ID2;Value

E1;A1;A3;39159

E2;A1;A2;8200

E3;A4;A8;2942

E4;A4;A7;1608

E5;A4;A6;3039

E6;A4;A5;3897

E7;A3;A9;27673

E8;A3;A4;11486

E9;A9;A11;22235

E10;A9;A10;5438

#######################

有没有人有建议?还是能够获得指定的颜色?

非常感谢,

帕特里克

EN

回答 2

Stack Overflow用户

发布于 2015-05-30 06:06:16

在nodes数据框中(如下面的nodes.df所示),将col变量(可能是一个因子)转换为字符。riverplot()被弄糊涂了!

nodes.df$col <- as.character(nodes.df$col)

票数 3
EN

Stack Overflow用户

发布于 2015-12-23 04:30:14

或者使用

stringsAsFactors= FALSE

在你的“节点”数据框中。这是在Reference Manual中提出的:请参见第7页上的示例以了解'makeriver()‘样式。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29451902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档