42.1 PKG

Show/Hide Code
library(ggraph) # 绘制网络图
library(igraph) # 处理网络图

42.2 Introduction

两种数据格式:

层次网络结构

连接的邻接矩阵
Show/Hide Code
# 创建一个数据框,给出个体层次结构。
# 原点在最上面,然后是组,然后是子组
d1 <- data.frame(
  from = "origin",
  to = paste("group", seq(1, 10), sep = "")
)
d2 <- data.frame(
  from = rep(d1$to, each = 10),
  to = paste("subgroup", seq(1, 100), sep = "_")
)

# 合并数据框
hierarchy <- rbind(d1, d2)

# 创建一个顶点数据框。每个对象一行,给出节点的特征。
vertices <- data.frame(
  name = unique(c(as.character(hierarchy$from), as.character(hierarchy$to)))
)

# 创建一个图对象
mygraph <- graph_from_data_frame(hierarchy, vertices = vertices)

# 绘制网络图
plot(mygraph, vertex.label = "", edge.arrow.size = 0, vertex.size = 2)
# 用ggraph绘制网络图
ggraph(mygraph, layout = "dendrogram", circular = FALSE) +
  geom_edge_link() + # 线连接
  theme_void()
# 用ggraph绘制网络图
ggraph(mygraph, layout = "dendrogram", circular = TRUE) +
  geom_edge_diagonal() + # 对角线连接
  theme_void()

层次网络结构

层次网络结构

层次网络结构
Show/Hide Code
# left: 连接用直线表示
ggraph(mygraph, layout = "dendrogram", circular = TRUE) +
  geom_edge_diagonal(alpha = 0.1) +
  geom_conn_bundle(
    data = get_con(from = c(18, 20, 30), to = c(19, 50, 70)),
    alpha = 1,
    width = 1,
    colour = "skyblue",
    tension = 0
  ) +
  theme_void()
# right: 使用bundle方法(tension = 1)
ggraph(mygraph, layout = "dendrogram", circular = TRUE) +
  geom_edge_diagonal(alpha = 0.1) +
  geom_conn_bundle(
    data = get_con(from = c(18, 20, 30), to = c(19, 50, 70)),
    alpha = 1,
    width = 1,
    colour = "skyblue",
    tension = 1
  ) +
  theme_void()

42.3 Color

edge-color-1

edge-color-2

edge-color-3

edge-color-4

edge-color-5 edge-color-6 edge-color-7

42.4 Label