R中network包等价于igraph V()的函数及network对象节点着色方法
R语言network包节点操作与着色方案
1. 对应igraph V()功能的等价函数
network包中提取节点属性的功能与V(g)$attribute完全对应,有两种常用写法:
- 标准函数写法:
get.vertex.attribute(network对象, "属性名") - 简写操作符写法:
network对象 %v% "属性名"
你也可以用set.vertex.attribute()为network对象新增/修改节点属性,对应igraph的V(g)$属性名 <- 值的功能。
2. 按节点字符属性为network对象着色的实现
network类对象调用plot()时默认使用plot.network()方法,节点颜色控制参数为vertex.col,和你原有igraph的着色逻辑几乎一致,只需要替换节点属性的提取方式即可,示例代码如下:
# 加载包 library(network) # 假设你已构造好名为net的network对象,且存在字符型节点属性attribute # 你可以直接沿用自定义的my_palette调色板 plot(net, # 仅需把原代码中的V(g)$attribute替换为network的属性提取方式即可 vertex.col = my_palette(as.factor(net %v% "attribute")), # 以下为可选美化参数,可按需调整 vertex.cex = 2.5, main = "按节点属性着色的网络图" )
如果需要确认属性和颜色的映射关系,可以执行以下代码查看对应表:
attr_vals <- unique(net %v% "attribute") color_map <- setNames(my_palette(as.factor(attr_vals)), attr_vals) print(color_map)
内容的提问来源于stack exchange,提问作者FnewatR
相关产品推荐
相关产品推荐

