案例研究:用 R 进行网络分析
Edmund Hart
Instructor
library(HiveR)
library(igraph)
# 创建随机图
rand_g <- erdos.renyi.game(18, 0.3, "gnp", directed = TRUE)
# 绘制随机图
plot(rand_g, vertex.size = 7)

# 转为蜂巢图数据框并添加权重 rand_g_df <- as.data.frame(get.edgelist(rand_g)) rand_g_df$weight <- 1# 转为蜂巢对象 rand_hive <- edge2HPD(edge_df = rand_g_df)# 设置每个节点的轴与半径 rand_hive$nodes$axis <- sort(rep(1:3, 6)) rand_hive$nodes$radius <- as.double(rep(1:6, 3))
# 查看节点的修改
rand_hive$nodes
id lab axis radius size color
1 2 1 1 1 black
2 8 1 2 1 black
3 9 1 3 1 black
4 3 1 4 1 black
5 4 1 5 1 black
6 7 1 6 1 black
7 11 2 1 1 black
8 14 2 2 1 black
9 18 2 3 1 black
# 查看蜂巢图
plotHive(rand_hive, method = "abs", bkgnd = "white")

# 设置每个节点的位置 rand_hive$nodes$axis <- sort(rep(1:3, 6)) rand_hive$nodes$radius <- as.double(rep(1:6, 3))# 为每条边添加权重 rand_hive$edges$weight <- as.double( rpois(length(rand_hive$edges$weight), 5) ) # 按边的起点设置颜色 rand_hive$edges$color[rand_hive$edges$id1 %in% 1:6] <- 'red' rand_hive$edges$color[rand_hive$edges$id1 %in% 7:12] <- 'blue' rand_hive$edges$color[rand_hive$edges$id1 %in% 13:18] <- 'green'# 绘图 plotHive(rand_hive, method = "abs", bkgnd = "white")

# 创建随机图 rand_g <- erdos.renyi.game(10, 0.3, "gnp", directed = FALSE) rand_g <- simplify(rand_g)# 为顶点添加名称 V(rand_g)$name <- LETTERS[1:length(V(rand_g))]# 创建 biofabric 图 biofbc <- bioFabric(rand_g) bioFabric_htmlwidget(biofbc)


案例研究:用 R 进行网络分析