2025.04.23【Treemap】树状图数据可视化指南

Multi-level treemap
How to build a treemap with group and subgroups.

Customization
Customize treemap labels, borders, color palette and more

文章目录
- Multi-level treemap
- Customization
- Treemap 数据可视化指南
- Treemap 的基本概念
- 为什么使用 Treemap
- Treemap 的应用场景
- R 语言中的 Treemap 实现
- 安装和加载 `treemap` 包
- 创建基本的 Treemap
- 自定义 Treemap
- 添加颜色
- 添加标签
- 高级定制
- 添加分组
- 调整布局
- 结论
Treemap 数据可视化指南
大家好,今天我们来聊一聊 Treemap,这是一种非常实用的数据可视化方法。Treemap 通过将数据集表示为一组嵌套的矩形来展示层次数据,每个组由一个矩形表示,其面积与其值成比例。这种图形特别适合展示具有层次结构的数据,比如生物信息学中的基因表达数据或蛋白质相互作用网络。接下来,我们将一起学习如何在 R 语言中使用 treemap 包来绘制 Treemap,并探索如何通过调整颜色、标签和其他视觉元素来深入理解数据的结构和模式。
Treemap 的基本概念
Treemap,顾名思义,是一种树状图,它通过矩形的大小来表示数据的层次和量级。每个矩形的面积代表了其对应数据的大小或重要性。这种图形的优势在于能够直观地展示大量层次化的数据,使得比较不同组或类别的大小变得简单直观。
为什么使用 Treemap
-
直观展示层次数据:Treemap 能够清晰地展示数据的层次结构,使得用户可以一眼看出不同层级之间的关系。
-
比较不同组的大小:通过矩形的面积,可以直观地比较不同组或类别的大小。
-
节省空间:Treemap 能够在有限的空间内展示大量的数据,这对于展示复杂的数据集非常有用。
Treemap 的应用场景
-
基因表达数据分析:在生物信息学中,基因表达数据通常具有层次结构,Treemap 可以用来展示不同基因在不同条件下的表达量。
-
蛋白质相互作用网络:展示蛋白质之间的相互作用,以及它们在不同生物学过程中的作用。
-
财务数据可视化:展示不同部门或项目的预算分配和实际支出。
R 语言中的 Treemap 实现
在 R 语言中,我们可以使用 treemap 包来实现 Treemap 的绘制。这个包提供了丰富的功能,允许我们根据数据值的大小来调整矩形的面积,并添加颜色、标签等视觉元素。
安装和加载 treemap 包
首先,我们需要安装并加载 treemap 包。如果你还没有安装这个包,可以使用以下命令进行安装:
install.packages("treemap")
然后,加载这个包:
library(treemap)
创建基本的 Treemap
接下来,我们将创建一个基本的 Treemap。假设我们有一组关于不同基因在不同条件下的表达量数据。我们将使用这个数据集来演示如何绘制 Treemap。
# 创建示例数据
data <- data.frame(Gene = c("Gene1", "Gene2", "Gene3", "Gene4"),Condition1 = c(10, 20, 30, 40),Condition2 = c(15, 25, 35, 45)
)# 将数据转换为适合 Treemap 的格式
data_melted <- reshape2::melt(data, id.vars = "Gene")# 绘制 Treemap
treemap(data_melted, index = c("Gene"), vSize = "value", title = "Gene Expression Data")
在上面的代码中,我们首先创建了一个包含基因表达数据的数据框 data。然后,我们使用 reshape2 包的 melt 函数将数据转换为长格式,这是绘制 Treemap 所需的格式。最后,我们使用 treemap 函数绘制 Treemap,其中 index 参数指定了分组变量,vSize 参数指定了用于调整矩形大小的变量。
自定义 Treemap
Treemap 的一个强大之处在于它的可定制性。我们可以调整颜色、标签和其他视觉元素来增强图形的信息表达能力。
添加颜色
我们可以为不同的基因或条件添加不同的颜色,以便于区分。
treemap(data_melted, index = c("Gene"), vSize = "value", palette = "Blues", title = "Gene Expression Data with Color")
在这里,我们通过设置 palette 参数为 “Blues” 来为 Treemap 添加蓝色调的颜色。
添加标签
我们还可以通过添加标签来提供更多的信息。
treemap(data_melted, index = c("Gene"), vSize = "value", palette = "Blues", title = "Gene Expression Data with Labels",fontsize.title = 14,label = "Gene",label.r = unit(0.15, "npc"))
在这个例子中,我们通过设置 label 参数为 “Gene” 来为每个矩形添加基因名称作为标签,并使用 label.r 参数调整标签的位置。
高级定制
除了基本的颜色和标签之外,treemap 包还支持许多其他高级定制选项,比如添加分组、调整布局等。
添加分组
我们可以在 Treemap 中添加分组,以展示更复杂的层次结构。
treemap(data_melted, index = c("Gene", "variable"), vSize = "value", palette = "Blues", title = "Gene Expression Data with Grouping")
在这里,我们通过在 index 参数中添加 “variable” 来创建分组。
调整布局
我们还可以通过调整布局参数来优化 Treemap 的外观。
treemap(data_melted, index = c("Gene"), vSize = "value", palette = "Blues", title = "Optimized Gene Expression Data",layout.type = "complete",fontsize.title = 14,node.padding = unit(2, "mm"))
在这个例子中,我们通过设置 layout.type 参数为 “complete” 和调整 node.padding 参数来优化布局。
结论
Treemap 是一种强大的数据可视化工具,特别适合展示具有层次结构的数据。通过在 R 语言中使用 treemap 包,我们可以轻松地创建和定制 Treemap 图形。希望这篇文章能帮助你理解 Treemap 的基本概念和实现方法,并激发你在生物信息学数据分析中应用这种图形的兴趣。
🌟 非常感谢您抽出宝贵的时间阅读我的文章。如果您觉得这篇文章对您有所帮助,或者激发了您对生物信息学的兴趣,我诚挚地邀请您:
👍 点赞这篇文章,让更多人看到我们共同的热爱和追求。
🔔 关注我的账号,不错过每一次知识的分享和探索的旅程。
📢 您的每一个点赞和关注都是对我最大的支持和鼓励,也是推动我继续创作优质内容的动力。
📚 我承诺,将持续为您带来深度与广度兼具的生物信息学内容,让我们一起在知识的海洋中遨游,发现更多未知的奇迹。
💌 如果您有任何问题或想要进一步交流,欢迎在评论区留言,我会尽快回复您。
相关文章:
2025.04.23【Treemap】树状图数据可视化指南
Multi-level treemap How to build a treemap with group and subgroups. Customization Customize treemap labels, borders, color palette and more 文章目录 Multi-level treemapCustomization Treemap 数据可视化指南Treemap 的基本概念为什么使用 TreemapTreemap 的应用…...
蓝桥杯 15.小数第n位
小数第n位 原题目链接 题目描述 我们知道,整数做除法时,有时会得到有限小数,有时会得到无限循环小数。 如果我们把有限小数的末尾加上无限多个 0,它们就具有了统一的形式。 本题的任务是:在上述约定下,…...
用高斯溅射技术跨越机器人模拟与现实的鸿沟:SplatSim 框架解析
在机器人领域,让机器人在现实世界中精准执行任务是大家一直追求的目标。可模拟环境和现实世界之间存在着不小的差距,特别是基于 RGB 图像的操作策略,从模拟转移到现实时总是状况百出。 今天咱们就来聊聊 SplatSim 框架,看看它是怎…...
Transformer 架构 - 解码器 (Transformer Architecture - Decoder)
欢迎回到我们的 Transformer 系列教程!在上一篇中,我们详细探讨了 Transformer 的编码器,它负责将输入的源序列(比如源语言句子)转换为一系列包含丰富上下文信息的向量表示。 现在,我们将把目光投向 Transformer 的另一半——解码器 (Decoder)。解码器负责接收编码器的输…...
使用Intel Advisor工具分析程序
使用Intel Advisor工具分析程序 Intel Advisor是一款性能分析工具,主要用于识别代码中的向量化机会、线程化和内存访问模式等问题。以下是使用Intel Advisor分析程序的基本步骤: 安装与准备 从Intel官网下载并安装Intel Advisor(通常作为I…...
AI大模型学习十一:尝鲜ubuntu 25.04 桌面版私有化sealos cloud + devbox+minio,实战运行成功
一、说明 用了ubuntu 25.04,内核为GNU/Linux 6.14.0-15-generic x86_64,升级了部分image,过程曲折啊 sealos 能干啥 对集群生命周期进行管理,一键安装高可用 Kubernetes 集群,增删节点清理集群自恢复等 通过 sealos…...
如何在 Python 项目中引入 Rust 函数
目录 1. 初始化 Python 项目2. 添加 Rust 开发工具3. 初始化 Rust 项目4. 开发模式构建5. 验证模块是否成功安装6. 测试 Rust 函数总结 (封面pid: 129416070) Python 是一门非常流行的编程语言,具有易于使用和开发的特点。然而,随着项目需求的增长和性能…...
聊聊SpringAI流式输出的底层实现?
在 Spring AI 中,流式输出(Streaming Output)是一种逐步返回 AI 模型生成结果的技术,允许服务器将响应内容分批次实时传输给客户端,而不是等待全部内容生成完毕后再一次性返回。 这种机制能显著提升用户体验ÿ…...
MySQL 8 自动安装脚本(CentOS-7 系统)
文章目录 一、MySQL 8 自动安装脚本脚本说明📌 使用脚本前提条件1. 操作系统2. 用户权限3. 网络要求 📌 脚本的主要功能1. 环境检查2. MySQL 自动安装3. 自动配置 MySQL4. 防火墙配置5. 验证与输出 📌 适用场景 二、执行sh脚本1. 给予脚本执行…...
在Notepad++中使用NppAtyle插件格式化代码
参考链接:Artistic Style 使用教程(中文版) 1.下载NppAStyle插件(根据版本,选择32位或者64位) https://github.com/ywx/NppAStyle/releases 2.菜单栏中选择:插件->打开插件文件夹 创建文件夹…...
【k8s系列7-更新中】kubeadm搭建Kubernetes高可用集群-三主两从
主机准备 结合前面的章节,这里需要5台机器,可以先创建一台虚拟机作为基础虚拟机。优先把5台机器的公共部分优先在一台机器上配置好 1、配置好静态IP地址 2、主机名宇IP地址解析 [root@localhost ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost…...
拼多多面经,暑期实习Java一面
项目中的设计模式 mysql连接过程,索引,分库分表场景,路由策略 redis使用场景,分片集群怎么搭建与路由,数据一致性 分布式锁怎么用的,具体使用参数 线程池怎么用的,过程 sql having 分布式事务 如…...
FramePack:让视频生成更高效、更实用
想要掌握如何将大模型的力量发挥到极致吗?叶梓老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具(限时免费)。 1小时实战课程,您将学习到如何轻松上手并有效利用 Llama Factory 来微调您的模型,以发挥其…...
ctfshow web8
前言 学习内容:简单的盲注脚本的书写 web8 这个题目题目手动注入很麻烦 主要是他过滤了 union 空格和 过滤了union的解决方法 1、使用盲注(报错注入和盲注) 2、使用时间盲注 3、堆叠注入 盲注脚本的书写 首先他是有注入点的 然后熟悉requests包的使用 …...
gem5-gpu教程03 当前的gem5-gpu软件架构(因为涉及太多专业名词所以用英语表达)
Current gem5-gpu Software Architecture 这是当前gem5-gpu软件架构的示意图。 Ruby是在gem5-gpu上下文中用于处理CPU和GPU之间内存访问的高度可配置的内存系统 CudaCore (src/gpu/gpgpu-sim/cuda_core.*, src/gpu/gpgpu-sim/CudaCore.py) Wrapper for GPGPU-Sim shader_cor…...
TDengine 查询引擎设计
简介 TDengine 作为一个高性能的时序大数据平台,其查询与计算功能是核心组件之一。该平台提供了丰富的查询处理功能,不仅包括常规的聚合查询,还涵盖了时序数据的窗口查询、统计聚合等高级功能。这些查询计算任务需要 taosc、vnode、qnode 和…...
AOSP Android14 Launcher3——点击桌面图标启动应用动画流程
在Launcher3中,点击桌面应用图标时,会有一个从 图标位置起始到全屏的动画过程,使得应用的打开过程不是生硬的启动过程。 这个动画具体是怎么实现的呢?本文对这个过程进行一个梳理 在Launcher中,动画大体上可以分为两类…...
windows端远程控制ubuntu运行脚本程序并转发ubuntu端脚本输出的网页
背景 对于一些只能在ubuntu上运行的脚本,并且这个脚本会在ubuntu上通过网页展示运行结果。我们希望可以使用windows远程操控ubuntu,在windows上查看网页内容。 方法 start cmd.exe /k "sshpass -p passwd ssh namexxx.xxx.xxx.xxx "cd /hom…...
【官方正版,永久免费】Adobe Camera Raw 17.2 win/Mac版本 配合Adobe22-25系列软
Adobe Camera Raw 2025 年 2 月版(版本 17.2)。目前为止最新版新版已经更新2个月了,我看论坛之前分享的还是2024版,遂将新版分享给各位。 Adobe Camera Raw,支持Photoshop,lightroom等Adobe系列软件&#…...
如何使用flatten函数在Terraform 中迭代嵌套map
简介 flatten 接受一个列表,并用列表内容的扁平序列替换列表中的任何元素。 > flatten([["a", "b"], [], ["c"]]) ["a", "b", "c"] > flatten([[["a", "b"], []], [&quo…...
原生 HTML 的`title` 属性修改触发事件为鼠标移入移出显示
HTML中title属性的适用范围 在 HTML 中,title 属性是全局属性(Global Attribute),这意味着它可以被应用到所有 HTML 标签上。无论是块级元素(如 <div>)、行内元素(如 <span>),还是表单元素(如 <input>),都可以添加 title 属性。 常见使用 title…...
【论文精读】Reformer:高效Transformer如何突破长序列处理瓶颈?
目录 一、引言:当Transformer遇到长序列瓶颈二、核心技术解析:从暴力计算到智能优化1. 局部敏感哈希注意力(LSH Attention):用“聚类筛选”替代“全量计算”关键步骤:数学优化: 2. 可逆残差网络…...
jmeter中监控服务器ServerAgent
插件下载: 将ServerAgent上传至需要监控的服务器,mac/liunx启动startAgent.sh(启动命令:./startAgent.sh) 在jmeter中添加permon监控组件 配置需要监控的服务器IP地址,添加需要监控的资源 注意…...
网络结构及安全科普
文章目录 终端联网网络硬件基础网络协议示例:用户访问网页 OSI七层模型网络攻击(Hack)网络攻击的主要类别(一)按攻击目标分类(二)按攻击技术分类 网络安全防御 典型攻击案例相关名词介绍网络连接…...
JVM虚拟机-JVM调优、内存泄漏排查、CPU飙高排查
一、JVM调优的参数在哪里设置 项目开发过程中有以下两种部署项目的方式: 项目部署在tomcat中,是一个war包;项目部署在SpringBoot中,是一个jar包。 (1)war包 catalina文件在Linux系统下的tomcat是以sh结尾,在windows系…...
安全复健|windows常见取证工具
写在前面: 此博客仅用于记录个人学习内容,学识浅薄,若有错误观点欢迎评论区指出。欢迎各位前来交流。(部分材料来源网络,若有侵权,立即删除) 取证 01系统运行数据 使用工具:Live-F…...
FPGA开发流程初识
FPGA 的开发流程可知,在 FPGA 开发的过程中会产生很多不同功能的文件,为了方便随时查找到对应文件,所以在开始开发设计之前,我们第一个需要考虑的问题是工程内部各种文件的管理。如 果不进行文件分类,而是将所有文件…...
Docker 中将文件映射到 Linux 宿主机
在 Docker 中,有多种方式可以将文件映射到 Linux 宿主机,以下是常见的几种方法: 使用-v参数• 基本语法:docker run -v [宿主机文件路径]:[容器内文件路径] 容器名称• 示例:docker run -it -v /home/user/myfile.txt:…...
C# 类型、存储和变量(栈和堆)
本章内容 C#程序是一组类型声明 类型是一种模板 实例化类型 数据成员和函数成员 预定义类型 用户定义类型 栈和堆 值类型和引用类型 变量 静态类型和dynamic关键字 可空类型 栈和堆 程序运行时,它的数据必须存储在内存中。一个数据项需要多大的内存、存储在什么地方…...
基于深度学习Yolo8的驾驶员疲劳与分心行为检测系统
基于深度学习Yolo8的驾驶员疲劳与分心行为检测系统 【包含内容】 【一】项目提供完整源代码及详细注释 【二】系统设计思路与实现说明 【三】疲劳检测模型与行为分析统计 【技术栈】 ①:系统环境:Windows/Mac/Linux ②:开发环境:P…...
