R语言数据可视化之美 · 第10章

精读版:概念讲解 + 图 + 代码,看这一页就够了

目录
目录

10.1 网络数据先想清楚:有多少节点、多少连线

网络(图)数据由两部分组成:节点(实体)+ 连线(关系)。画图前先看两个问题:
① 节点多不多?几十个以内 → 节点链接图;几百个 → 相邻矩阵/热力图;
② 连线密不密?线一多全糊住 → 用和弦图(圆形排布)或边绑定图(线成束)。
选图核心矛盾:节点图直观但怕拥挤,矩阵图不怕拥挤但不直观。节点少连线稀用节点链接图,反之用矩阵/和弦图。

图10-0-1 网络关系型图表总览

10.2 相邻矩阵图:网络画成热力图

相邻矩阵把"谁和谁相连"写成矩阵:行=起点,列=终点,格子颜色=是否有连边/连边强度。
实现:ggplot2 的 geom_tile()(heatmap 样式)。
看什么:行列是否成块(有结构=节点按类别聚成社区);哪一行"特别亮"=该节点连线多(中心节点/枢纽)。
优势:节点几百个也不乱;劣势:读不出直观的"网络形态"。
论文用法:微生物共现网络的"共现强度矩阵"——物种×物种的颜色矩阵,能看群落内哪些物种关系紧密。

图10-1-2 有权重的相邻矩阵热力图

10.3 和弦图:圆形排布的流/关系

和弦图把节点排在圆周上,节点之间的连线(弧带)表示关系,带宽=权重。
实现:circlize 包的 chordDiagram()。
看什么:弧带粗=关系强;哪些节点"出带多"(主动流出)/"入带多"(被指向)。
适合:两两之间的流量/转移关系(贸易流、物种互作、转移矩阵);节点 10-40 个最佳。
论文用法:不同环境样本之间物种"共享/转移"关系、代谢物相关性网络。

图10-2-3 和弦图
library(circlize)
df_melt <- melt(df, id.vars = 'Region')
colnames(df_melt) <- c('from', 'to', 'value')
circos.clear()
circos.par(start.degree = 90, gap.degree = 4)
chordDiagram(df_melt)   # from → to,带宽=value

10.4 桑基图:流量怎么分叉汇合

桑基图展示"量从一组流向另一组"的路径:每根流带宽度=流量,流带的分叉/汇合=流向变化。
实现:ggalluvial 包(ggplot2 风格)或 networkD3 包(交互式)。
看什么:哪条路径流量最大;哪些阶段"分流"明显。
典型场景:样本分组→OTU 分类→物种分类的"流程";能量/物质在各环节的转移。
注意:流带层次多时标注会挤,用颜色区分大类、交互式悬停看数值最舒服。

图10-3-2 不同类型的桑基图

10.5 网络节点链接图:最经典的网络画法

节点链接图 = 点 + 线:节点位置由布局算法决定(FR 力导向布局最常用,还有 sphere 球形、nicely 等),连线=关系。
实现:igraph 包算布局 + ggraph 包画图。
看什么:节点大小/颜色可映射度(连线数)或类别;中心枢纽节点一眼可见;社区(抱团的节点群)通过布局自然呈现。
力导向布局的原理:有连线的节点互相吸引,没连线的互相排斥,迭代到稳定——所以"关系近的靠在一起"。
论文用法:微生物共现网络(节点=OTU,边=显著相关)、基因互作网络。

图10-4-1 节点链接图(FR 力导向布局)
library(igraph); library(ggraph)
net <- graph_from_data_frame(edges, vertices = vertices)
ggraph(net, layout = 'fr') +            # FR 力导向布局
  geom_node_point(aes(size = degree(net), color = group)) +
  geom_edge_link(alpha = 0.3)

10.6 蜂巢网络图与边绑定图:连线太多时的救兵

节点多、连线密时普通网络图是"毛线团",两个替代方案:
蜂巢图(Hive plot):按节点属性(如度数)把节点排到几条径向轴上,连线画在轴间——结构规律比毛线团清楚得多;
边绑定图(edge bundling):把走向相似的线绑成一束,像线缆一样——"谁到谁"仍可辨,但画面干净。
适合:网络研究的专业展示;普通论文里节点 < 100 时经典节点图就够了。

图10-0-1 蜂巢网络图

10.7 本章选图逻辑

| 你的情况 | 选它 | |---|---| | 节点少(几十)看结构 | 节点链接图(力导向) | | 节点多(几百)不糊 | 相邻矩阵热力图 | | 两两流量/转移关系 | 和弦图 | | 流量路径/分叉汇合 | 桑基图 | | 节点<100 共现网络 | 节点链接图(论文首选) | | 连线密成毛线团 | 蜂巢图 / 边绑定图 |

选图逻辑(记这个就够)

| 你的情况 | 选它 | |---|---| | 节点少(几十)看结构 | 节点链接图(力导向) | | 节点多(几百)不糊 | 相邻矩阵热力图 | | 两两流量/转移关系 | 和弦图 | | 流量路径/分叉汇合 | 桑基图 | | 节点<100 共现网络 | 节点链接图(论文首选) | | 连线密成毛线团 | 蜂巢图 / 边绑定图

选图逻辑(记这个就够)

| 你的情况 | 选它 | |---|---| | 节点少(几十)看结构 | 节点链接图(力导向) | | 节点多(几百)不糊 | 相邻矩阵热力图 | | 两两流量/转移关系 | 和弦图 | | 流量路径/分叉汇合 | 桑基图 | | 节点<100 共现网络 | 节点链接图(论文首选) | | 连线密成毛线团 | 蜂巢图 / 边绑定图
本章一句话总结:网络关系选图:节点链接图看关系网、和弦图看两两关系矩阵、桑基图看流量路径、边绑定图整理连线——微生物共现网络的主场。
×