ggnet。连续节点属性的灰度节点颜色?

问题描述 投票:0回答:1

在 ggnet2 中,我正在努力为基于连续节点属性的节点添加灰度着色。这里有2个变量来说明。

> get.vertex.attribute(netshenzhen,"day")
# num [1:235] 47 17 16 12 18 48 42 15 20 38 ...

> str(get.vertex.attribute(netshenzhen,"source"))
# chr [1:235] "Traveled to Hubei" "Traveled to Hubei" "Traveled to Hubei" ...

如果我输入 ggnet2(netshenzhen, label = T,color = "day"),这里是生成的图。但是 "天 "是一个连续变量,我想在其上添加灰度(颜色越深,"天 "越多)。另外,我也搞不懂这个调色板是怎么来的,如果我在数据中附加其他连续属性,也会得到类似的结果。

带连续变量的网络图 day

如果我使用一个因子来代替,它的工作原理和ggnet2包中介绍的一样。但我真的很想在灰度上增加一个连续的节点属性。

带因子变量的网络图 source

我见过用手工编码解决这个问题的方法,用的是 统计网自己的可视化工具. 但我想知道是否有简单(r)的解决方案,使用ggnet?

我对R和编程不是很精通。所以非常感谢有行到行注释解释的示例代码。谢谢你!在ggnet2中,我是一个很简单的(r)解决方案。

r ggplot2 igraph ggnetwork
1个回答
0
投票

你好~看来你问题中的两张图是倒置的:第二张图是你得到的,如果你进行 传递一个因子变量,比如你的 source 变量,节点的灰度着色就是默认的情况。

节点的灰度颜色是默认的,如果你给了 ggnet2 a color 变量,而不是由颜色名称组成。

下面是如何匹配一个连续(数字)变量,如 day 变成灰度颜色,然后将其传递给 ggnet2. 您所感兴趣的行是创建了 day_gray 顶点属性。

library(GGally)
library(network)

n <- network(sna::rgraph(10))
network.vertex.names(n) <- sample(letters, 10)

n %v% "day" <- sample(1:10, 10)
n %v% "day_gray" <- gray.colors(10)[ n %v% "day" ]

ggnet2(n, label = TRUE, color = "day_gray")

对于更灵活的解决方案(如果你需要比上面更高级的东西),我推荐使用 ggraph 包,或 ggnetwork 包。

© www.soinside.com 2019 - 2024. All rights reserved.