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

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

目录
目录

9.1 层次结构图怎么选:同一种数据的四种画法

层次(树形)数据可以画成四种样子,各有侧重:
节点链接图:点+连线,层级关系最清楚(上下级一目了然),但节点多时会乱;
树形图(冰柱图):像倒置的树/冰柱,适合看层级深度;
旭日图:同心圆环,每圈一层,面积=数值,层级+占比一起看;
矩形树状图(treemap):用矩形面积表示数值,空间利用率最高;
圆堆积图:圆套圆,适合展示嵌套关系。
选图原则:层级多、要标注准确 → 节点链接图/树形图;层级+数值占比 → 旭日图/矩形树状图;节点极多 → 矩形树状图(最省空间)。

图9-0-1 节点链接图(正交布局)
图9-0-1 旭日图
图9-0-1 矩形树状图

9.2 节点链接图:层级关系最直白

节点链接图 = 节点(个体)+ 连线(隶属关系)。布局有两种:
正交布局:像组织结构图,上下排布,父子关系靠连线和缩进表达;
径向布局:根节点在圆心,各级向外辐射成同心圆——节点多时比正交布局紧凑。
实现:ggraph 包(layout = 'dendrogram'/'partition' 等)或 igraph。
看什么:树有多深(层级数)、哪些分支特别长(分类层级多)。
论文用法:物种分类树(门纲目科属种)的可视化。

图9-1-1 节点链接图的径向布局法

9.3 树形图:聚类结果的默认展示

树形图(dendrogram)是层次聚类的配套图:hclust() 聚类后,树的分叉高度=样本/变量的相似度,越高越不相似。
实现:ggplot2 的 ggdendro 包或 dendextend 包;ggtree 包是微生物系统发育树的专业工具。
看什么:哪些样本/物种先合并(关系近),树的高低分叉把数据分成几大簇。
论文用法:样品聚类(Bray-Curtis 距离 + UPGMA 法)、物种系统发育树——16S 分析里和 PCA/热力图配套出现。

9.4 旭日图:层级 + 占比一张图

旭日图(sunburst)从圆心开始一圈一圈向外:圆心=顶层分类,每向外一圈=下一级,每段弧的面积=数值占比。
实现:ggplot2 手绘(geom_col + coord_polar)或 sunburstR/plotly 包。
看什么:外层哪段最大=细分后占主体的类别;同一角度方向的多层弧=同一大类的细分链。
注意:最内圈占比小(比如 2%)的类别,外圈再细分就看不清了——细分前先看内圈占比。
论文用法:物种分类占比(门→纲→目 各层级)的可视化。

图9-3-1 旭日图

9.5 圆堆积图:圆套圆的嵌套

圆堆积图(circle packing)把层级画成"圆套圆":外层大圆=父类,内层小圆=子类,圆面积=数值。
实现:ggraph 的 layout='circlepack'(代码见下)。
看什么:哪组"包得紧"(子类多且密);最大圆=主导类别。
适合:节点几十个以内、想强调嵌套关系;比矩形树状图好看但空间利用率低,大圆套小圆容易挤。

library(ggraph); library(igraph)
mygraph <- graph_from_data_frame(edges, vertices = vertices)
ggraph(mygraph, layout = 'circlepack', weight = "size") +
  geom_node_circle(aes(fill = depth)) +
  geom_node_text(aes(label = shortName, filter = leaf)) +
  theme_void()

9.6 矩形树状图:面积=数值,最省空间

矩形树状图(treemap)把整体切成一堆矩形:每块面积=数值大小,父类用粗边框,子类在内部细分。
实现:treemap 包(快、专业)或 ggplot2 的 treemapify。
看什么:谁占面积最大=谁数值最大;同色系区域=同一父类。
优点:几千个节点也能塞进一张图;缺点:矩形形状不能精确读出数值,且小矩形标注放不下。
论文用法:物种丰度组成(门水平谁占主导)、KEGG 通路占比。

library(treemap)
proglangs <- read.csv("Treemap_Data.csv")
treemap(proglangs,
        index = c("parent", "id"),   # 层级:父类 + 子类
        vSize = "value",             # 面积 = 数值
        vColor = "parent", type = "index",
        palette = "Set1")

9.7 本章选图逻辑

| 你的情况 | 选它 | |---|---| | 聚类结果展示 | 树形图(ggtree 更专业) | | 层级+占比一起看 | 旭日图 | | 节点极多、要省空间 | 矩形树状图 | | 强调嵌套结构 | 圆堆积图 | | 组织结构/隶属关系 | 节点链接图 |

选图逻辑(记这个就够)

| 你的情况 | 选它 | |---|---| | 聚类结果展示 | 树形图(ggtree 更专业) | | 层级+占比一起看 | 旭日图 | | 节点极多、要省空间 | 矩形树状图 | | 强调嵌套结构 | 圆堆积图 | | 组织结构/隶属关系 | 节点链接图

选图逻辑(记这个就够)

| 你的情况 | 选它 | |---|---| | 聚类结果展示 | 树形图(ggtree 更专业) | | 层级+占比一起看 | 旭日图 | | 节点极多、要省空间 | 矩形树状图 | | 强调嵌套结构 | 圆堆积图 | | 组织结构/隶属关系 | 节点链接图
本章一句话总结:层次关系选图:树状图做经典聚类展示、旭日图/矩形树状图做层级+占比、圆填充图做结构示意——物种聚类与样品相似性聚类的展示。
×