35  多边形树状图(可交互)

35.1 什么是多边形树状图?

多边形树状图,它是一种利用嵌套式多边形显示层次结构的方法,同时通过面积大小显示每个类别的数量大小。

多边形树状图采用多边形表示层次结构里的节点,父子节点之间的层次关系用多边形之间的相互嵌套隐喻来表达。每个类别会被分配一个多边形区域,而其子类别则由嵌套在其中的小多边形代表。当不同类别分配不同数量时,这些多边形的面积大小会与数量成正比显示。

此外,主类别的面积大小是其所有子类别的总和。如果没有数量分配给子类别,那么其面积则是主类别的总面积除以子类别的数目。因此多边形树状图是一种紧凑而且节省空间的层次结构显示方式,能够直观体现同级类别之间的比较。

本文我们就来讨论一下多边形树状图是如何绘制的以及如何对其进行解读。

35.2 绘图前的数据准备

demo数据可以在https://www.bioladder.cn/shiny/zyp/bioladder2/demoData/treemap/1.txt下载。

数据包含5列信息。其中第1列和第2列是必须要有的。

第1列h1是第1个层次的类别;第二列h2是第2个层次的名称;第3列是颜色,用来指定该多边形的颜色;第4列是数值,代表该多边形的面积大小;第5列是缩写,显示在图中的文字标签。

35.3 R语言怎么画多边形树状图

# voronoiTreemap包的安装方式为
# devtools::install_github("uRosConf/voronoiTreemap")
library(voronoiTreemap)

# 读取多边形树状图数据文件
df= read.delim("https://www.bioladder.cn/shiny/zyp/bioladder2/demoData/treemap/2.txt")# 这里读取了网络上的demo数据,将此处换成你自己电脑里的文件

# 生成层次结构
data_int = vt_input_from_df(df, 
                            hierachyVar0 = "h1",     # 定义哪列是第1个层次
                            hierachyVar1 = "h2",     # 定义哪列是第2个层次
                            hierachyVar2 = "h3",     # 定义哪列是第3个层次
                            colorVar = "color",      # 定义每个多边形的颜色
                            weightVar = "size",      # 定义每个多边形的大小
                            labelVar = "abbreviation"# 定义每个多边形的缩写标签
)

# 绘图
vt_d3(vt_export_json(data_int),
     legend= T, # 是否显示图例
     label = T  # 是否显示文字标签
)

35.4 BioLadder生信云平台在线绘制多边形树状图

不想写代码?可以用BioLadder生信云平台在线绘制多边形树状图。

网址:

多边形树状图-BioLadder生物信息在线分析可视化云平台​www.bioladder.cn/web/#/chart/31

35.5 多边形树状图结果解读

多边形树状图把具有层次关系的数据可视化为一组嵌套的多边形,所有多边形的面积之和代表了整体的大小,各个小多边形的面积表示每个子数据的占比大小。所以多边形面积越大,表示子数据在整体中的占比越大。

多边形树状图的好处在于,相比传统的树形结构图,多边形树状图能更有效地利用空间,并且拥有展示占比的功能。多边形树状图的缺点在于,当分类占比太小的时候,文本会变得很难排布。相比分叉树形图,多边形树状图的树形数据结构表达得不够直观、明确。