首页 > 解决方案 > R中有向网络中的颜色节点

问题描述

我有一个只有两种类型的节点 A 和 B 的有向网络。方向总是从任何给定的 A任何给定的 B。没有其他方向是可能的。

边缘列表如下所示:

edges <- read.table(text = " from to weight 1 6 1.2 3 7 1.4 4 6 1.2 1 7 1.2 2 8 1.2 1 9 1.2 5 10 1.2 ", header=T )

节点列表如下所示:

nodes
id 
1  1   
2  1   
3  3  
4  4   
5  5  
6  6    
7  7    
8  B
9  9
10 10


该图是使用 igraph 包创建的。

g <- graph_from_data_frame(d = edges, vertices=nodes, directed = TRUE)

是否可以根据边缘列表中的节点来自节点为节点着色,而不向节点列表添加其他变量/标签?

(我尝试像这样为节点着色,但意识到这没有多大意义)

plot(g, vertex.color=V(g$edges=='from'))

标签: rigraph

解决方案


我不是 100% 确定,但我认为你正在寻找的东西并不存在。vertex.color需要一个颜色向量,每个顶点一种颜色。

同时,作为一种解决方法,您可以使用 degree 的输出来选择入(或出)度为 0 或更高的顶点:

plot(g,
     vertex.color=ifelse(degree(g, mode = "out")>0, "red", "black"),
     size=15)

推荐阅读