当前位置: 首页 > article >正文

2025.04.14【Table】| 生信数据表图技巧

Table

Custom title

A set of examples showing how to customize the titles of a
table made with GT

Custom title

Custom footer

How to customize the footer and the references section of a
gt table

Custom footer

文章目录

      • Custom title
      • Custom footer
    • 生信数据可视化:Table图表详解
      • 1. R语言中的表格创建基础
        • 1.1 创建一个简单的数据框
        • 1.2 使用tibble创建数据框
      • 2. 使用kableExtra创建美化的表格
        • 2.1 安装和加载kableExtra
        • 2.2 创建一个美化的表格
      • 3. 使用gt包创建复杂的表格
        • 3.1 安装和加载gt
        • 3.2 创建一个复杂的表格
      • 4. 使用reactable创建交互式表格
        • 4.1 安装和加载reactable
        • 4.2 创建一个交互式表格
      • 5. 使用DT包创建动态表格
        • 5.1 安装和加载DT
        • 5.2 创建一个动态表格
      • 6. 结合多个包进行高级表格操作
        • 6.1 结合kableExtra和DT
      • 结语

生信数据可视化:Table图表详解

在生物信息学领域,数据的可视化至关重要,而表格作为一种直观展示复杂数据的工具,扮演着不可或缺的角色。R语言以其在表格创建和操作方面的卓越性能而闻名,提供了多种包如kableExtragtreactableDT,这些包不仅功能丰富,而且适用于不同的数据类型和可视化目标。本博客旨在通过丰富的示例,指导你如何根据不同的数据和需求选择合适的表格创建策略。从基础的表格样式到高级的交互式表格,我们将探讨如何利用R语言的强大功能,将数据以清晰、有组织的方式呈现,以便于理解和分析。通过这些示例,即使是初学者也能快速上手,有效地利用R语言进行生物信息数据的表格化展示。

1. R语言中的表格创建基础

在R语言中,创建表格的基础是使用data.frame或者tibble。这两种数据结构都可以存储表格数据,其中tibbledata.frame的一个现代化替代品,提供了更好的打印和子集操作。

1.1 创建一个简单的数据框

# 创建一个简单的数据框
df <- data.frame(Sample = c("Sample1", "Sample2", "Sample3"),Gene1 = c(10, 20, 30),Gene2 = c(15, 25, 35)
)# 打印数据框
print(df)

这段代码创建了一个包含样本名称和两个基因表达值的数据框,并将其打印出来。

1.2 使用tibble创建数据框

# 加载tibble包
library(tibble)# 使用tibble创建数据框
df_tibble <- tibble(Sample = c("Sample1", "Sample2", "Sample3"),Gene1 = c(10, 20, 30),Gene2 = c(15, 25, 35)
)# 打印tibble数据框
print(df_tibble)

tibble提供了更友好的打印输出,特别是在处理大型数据集时。

2. 使用kableExtra创建美化的表格

kableExtra是一个强大的包,可以与knitrkable一起使用,以创建美观的表格。

2.1 安装和加载kableExtra

# 安装kableExtra包
install.packages("kableExtra")# 加载kableExtra包
library(kableExtra)
2.2 创建一个美化的表格

# 使用kable创建一个基本的表格
kable_df <- kable(df, format = "html") %>%kable_styling(bootstrap_options = c("striped", "hover"))# 打印美化后的表格
print(kable_df)

这段代码将创建一个带有条纹和悬停效果的HTML表格。

3. 使用gt包创建复杂的表格

gt是一个现代的、灵活的表格创建包,它允许高度定制化的表格设计。

3.1 安装和加载gt

# 安装gt包
install.packages("gt")# 加载gt包
library(gt)
3.2 创建一个复杂的表格

# 使用gt创建一个复杂的表格
gt_table <- gt(df) %>%tab_options(Table.Theme = gttheme_minimal(),Table.Footnote.font.size = px(10)) %>%fmt_number(columns = everything(),decimals = 2)# 打印复杂的表格
print(gt_table)

这段代码创建了一个具有最小主题和数字格式化的表格。

4. 使用reactable创建交互式表格

reactable是一个用于创建交互式HTML表格的包。

4.1 安装和加载reactable

# 安装reactable包
install.packages("reactable")# 加载reactable包
library(reactable)
4.2 创建一个交互式表格

# 使用reactable创建一个交互式表格
react_table <- reactable(df, default_col_def = col_def(align = "center"))# 打印交互式表格
print(react_table)

这段代码创建了一个居中对齐的交互式表格。

5. 使用DT包创建动态表格

DT是一个用于创建动态HTML表格的包,它允许用户与表格进行交互。

5.1 安装和加载DT

# 安装DT包
install.packages("DT")# 加载DT包
library(DT)
5.2 创建一个动态表格

# 使用DT创建一个动态表格
dt_table <- datatable(df)# 打印动态表格
print(dt_table)

这段代码创建了一个可以排序和搜索的动态表格。

6. 结合多个包进行高级表格操作

在实际应用中,我们可能需要结合多个包来实现更复杂的表格操作。

6.1 结合kableExtra和DT

# 结合kableExtra和DT创建一个美化且动态的表格
kable_dt <- kable(df, format = "html") %>%kable_styling(bootstrap_options = c("striped", "hover")) %>%add_header_above(c(" " = 1, "Gene Expression" = c("Gene1", "Gene2"))) %>%DT::datatable(options = list(pageLength = 5))# 打印美化且动态的表格
print(kable_dt)

这段代码创建了一个具有额外表头和分页功能的美化且动态的表格。

结语

通过上述内容,我们学习了如何在R语言中使用不同的包来创建和操作表格。从基础的数据框操作到高级的交互式和动态表格,R语言提供了强大的工具来满足各种数据可视化需求。希望这篇文章能帮助你更好地理解和应用R语言在生物信息学数据可视化中的强大功能。

🌟 非常感谢您抽出宝贵的时间阅读我的文章。如果您觉得这篇文章对您有所帮助,或者激发了您对生物信息学的兴趣,我诚挚地邀请您:

👍 点赞这篇文章,让更多人看到我们共同的热爱和追求。

🔔 关注我的账号,不错过每一次知识的分享和探索的旅程。

📢 您的每一个点赞和关注都是对我最大的支持和鼓励,也是推动我继续创作优质内容的动力。

📚 我承诺,将持续为您带来深度与广度兼具的生物信息学内容,让我们一起在知识的海洋中遨游,发现更多未知的奇迹。

💌 如果您有任何问题或想要进一步交流,欢迎在评论区留言,我会尽快回复您。

相关文章:

2025.04.14【Table】| 生信数据表图技巧

Custom title A set of examples showing how to customize the titles of a table made with GT Custom footer How to customize the footer and the references section of a gt table 文章目录 Custom titleCustom footer 生信数据可视化&#xff1a;Table图表详解1. R语…...

方案解读:虚拟电厂标杆项目整体建设方案【附全文阅读】

在电力市场背景下,传统电力现货市场存在电能定价不合理、分布式电源并网困难等问题。本虚拟电厂标杆项目旨在研究全时间尺度虚拟电厂智能管控关键技术,通过研制虚拟电厂控制器样机、开发运行管理平台,实现对分布式能源的合理优化配置。项目内容涵盖虚拟调控、建设目标、建设…...

使用Trae CN分析项目架构

架构分析后的截图 A区是打开的项目、B区是源码区、C区是AI给出当前项目的架构分析结果。 如何用 Trae CN 快速学习 STM32 嵌入式项目架构 在嵌入式开发领域&#xff0c;快速理解现有项目的架构是一项关键技能。Trae CN 作为一款强大的分析工具&#xff0c;能帮助开发者高效剖…...

【Python3】Django 学习之路

第一章&#xff1a;Django 简介 1.1 什么是 Django&#xff1f; Django 是一个高级的 Python Web 框架&#xff0c;旨在让 Web 开发变得更加快速和简便。它鼓励遵循“不要重复自己”&#xff08;DRY&#xff0c;Don’t Repeat Yourself&#xff09;的原则&#xff0c;并提供了…...

浏览器缩放后 element ui组件偏移

一、需求&#xff1a;当body的有了zoom值之后&#xff0c;element ui相关的popper弹框&#xff08;下拉框、日期选择框、分页组件&#xff09;位置都会出现偏移问题 二、问题来源 popper弹框都会需要根据屏幕x,y的坐标来设置位置&#xff0c;但是有了zoom值之后&#xff0c;x,y…...

FPGA学习——DE2-115开发板上设计波形发生器

1. 实验目的 掌握直接数字频率合成&#xff08;DDS&#xff09;技术的基本原理和应用。使用DE2-115开发板实现正弦波和方波的生成。使用SignalTap II嵌入式逻辑分析仪测试输出波形的离散数据。 2. 实验原理 DDS技术&#xff1a;通过相位累加器生成相位信息&#xff0c;结合波…...

Next.js 技术详解:构建现代化 Web 应用的全栈框架

1. Next.js 概述 Next.js 是一个基于 React 的全栈框架&#xff0c;由 Vercel 团队开发和维护。它提供了一系列开箱即用的功能&#xff0c;使开发者能够快速构建高性能的 Web 应用。 核心优势 服务端渲染 (SSR)静态站点生成 (SSG)增量静态再生成 (ISR)文件系统路由API 路由图…...

【springsecurity oauth2授权中心】简单案例跑通流程

项目被拆分开&#xff0c;需要一个授权中心使得每个项目都去授权中心登录获取用户权限。而单一项目里权限使用的是spring-security来控制的&#xff0c;每个controller方法上都有 PreAuthorize("hasAuthority(hello)") 注解来控制权限&#xff0c;想以最小的改动来实…...

golang channel源码

解析 数据结构 hchan&#xff1a;channel 数据结构 qcount&#xff1a;当前 channel 中存在多少个元素&#xff1b; dataqsize: 当前 channel 能存放的元素容量&#xff1b; buf&#xff1a;channel 中用于存放元素的环形缓冲区&#xff1b; elemsize&#xff1a;channel 元素…...

小刚说C语言刷题——1033 判断奇偶数

1.题目描述 输入一个整数&#xff0c;判断是否为偶数。是输出 y e s &#xff0c;否则输出n o。 输入 输入只有一行&#xff0c;包括 1个整数&#xff08;该整数在 1∼10000的范围内&#xff09;。 输出 输出只有一行。&#xff08;注意输出格式&#xff0c;具体请看下方提…...

2025TGCTF Web WP复现

AAA 偷渡阴平 <?php$tgctf2025$_GET[tgctf2025];if(!preg_match("/0|1|[3-9]|\~|\|\|\#|\\$|\%|\^|\&|\*|\&#xff08;|\&#xff09;|\-|\|\|\{|\[|\]|\}|\:|\|\"|\,|\<|\.|\>|\/|\?|\\\\/i", $tgctf2025)){//hint&#xff1a;你可以对着键盘…...

基于DeepSeek的考研暑假日志分析

注&#xff1a;我去年考研时写了日志&#xff0c;大致记录了我每天的主要活动。由于过于琐碎&#xff0c;一直没有翻看。突发奇想&#xff0c;现在利用deepseek总结其中规律。 从你的日志中可以总结出以下规律和活动兴衰起落&#xff1a; ​​一、学习活动规律与演变​​ ​​…...

「GitHub热榜」AIGC系统源码:AI问答+绘画+PPT+音乐生成一站式

—零门槛搭建私有化AI内容工厂&#xff0c;源码开放商业落地指南 为什么全栈AIGC系统成为企业刚需&#xff1f; 1. 传统方案的致命缺陷 痛点 使用ChatGPTMidjourneyCanva 本全栈方案 工具割裂 需切换5平台 一个系统全搞定 成本 年费50万 一次部署永久免费 数据安全 …...

AWS上构建基于自然语言的数值和符号计算系统

我想要实现一个通过使用C#、Semantic Kernel库、OpenAI GPT 4的API和以下使用C#开源库MathNet实现通过中文自然语言提示词中包含LATEX代码输入到系统,通过以下符号和数值计算和其它符号和数值计算程序输出计算结果和必要步骤的应用,这样的数学计算使用程序直接产生结果,可以…...

【C++】 —— 笔试刷题day_19

一、小易的升级之路 题目解析 小易现在要打游戏&#xff0c;现在游戏角色的初始能力值为a&#xff0c;我们会遇到n个怪&#xff0c;这些怪物的防御值为b1、b2、b3...&#xff0c;如果我们的能力值要高于或者等于怪物的防御值&#xff0c;那我们的能力值就会加bi&#xff1b;如…...

解决 Spring Boot 多数据源环境下事务管理器冲突问题(非Neo4j请求标记了 @Transactional 尝试启动Neo4j的事务管理器)

0. 写在前面 到底遇到了什么问题&#xff1f; 简洁版&#xff1a; 在 Oracle 与 Neo4j 共存的多数据源项目中&#xff0c;一个仅涉及 Oracle 操作的请求&#xff0c;却因为 Neo4j 连接失败而报错。根本原因是 Spring 的默认事务管理器错误地指向了 Neo4j&#xff0c;导致不相…...

Oracle日志系统之重做日志和归档日志

Oracle日志系统之重做日志和归档日志 重做日志归档日志 本文讨论Oracle日志系统中对数据恢复非常重要的两个日志&#xff1a;重做日志和归档日志。 重做日志 重做日志&#xff0c;英文名Redo Log&#xff0c;顾名思义&#xff0c;是用来数据重做的&#xff0c;主要使用场景是事…...

Kubernetes》》K8S》》Pod的健康检查

K8s概念总结 》》》Pod的生命周期阶段 Pod的生命周期可以简单描述&#xff1a;首先Pod被创建&#xff0c;紧接着Pod被调度到Node节点进行部署。 Pod是非常忠诚的&#xff0c;一旦被分配到Node节点后&#xff0c;就不会离开这个Node节点&#xff0c;直到它被删除&#xff0c;删除…...

计算机视觉——基于使用 OpenCV 与 Python 实现相机标定畸变校正

概述 相机标定是一种旨在通过确定相机的内参&#xff08;焦距、光学中心、畸变系数&#xff09;和外参&#xff08;相机的位置和方向&#xff09;&#xff0c;提高图像在现实世界中的几何精度的过程。该过程可以纠正相机拍摄的图像中的畸变&#xff0c;使相机能够准确感知现实…...

Python作业4 文本词云统计,生成词云

编写程序&#xff0c;统计两会政府工作报告热词频率&#xff0c;并生成词云。 2025两会政府工作报告 import jieba import wordcloud from collections import Counter import re# 读取文件 with open("gov.txt", "r", encoding"gbk") as f:t …...

Jenkins 2.492.2 LTS 重置管理员密码

文章目录 1. Jenkins 关闭用户认证2. jenkins 修改密码 如果忘记了 Jenkins 的管理员密码的话&#xff0c;也不用担心&#xff0c;只要你有权限访问 Jenkins 的根目录&#xff0c;就可以轻松地重置密码。 1. Jenkins 关闭用户认证 // 查看 jenkins 家目录&#xff08;使用 doc…...

1. python开发小笔记

本文件记录一些实用的python小知识&#xff0c;会一直更新 1. import路径 1.1 python的import搜索路径可以用sys.path查看&#xff1a; import sys print(sys.path) 1.2 python的搜索目录有&#xff1a; 本脚本所在目录环境变量PYTHONPATH指定的目录标准库目录&#xff0c;通…...

【裁判文书网DES3数据解密】逆向分析

点击翻页&#xff0c;出现请求&#xff0c;可以看到请求参数有个ciphertext密文&#xff0c;响应数据也是密文 打上断点&#xff0c;点击翻页&#xff0c;断住 可以看到postData里面的ciphertext已经生成 往前跟栈&#xff0c;可以发现是var ciphertext cipher(); funct…...

探索 JavaScript 中的 Promise 高级用法与实战

在现代 Web 开发中&#xff0c;异步编程已成为不可或缺的一部分。JavaScript 作为 Web 开发的核心语言&#xff0c;提供了多种处理异步操作的方式&#xff0c;其中 Promise 对象因其简洁、强大的特性而备受青睐。本文将深入探讨 Promise 的高级用法&#xff0c;并结合实际案例&…...

【dify实战】agent结合deepseek实现基于自然语言的数据库问答、Echarts可视化展示、Excel报表下载

使用dify agent实现数据库智能问答&#xff0c;echarts可视化展示&#xff0c;excel报表下载 观看视频&#xff0c;您将学会 在dify下如何快速的构建一个agent&#xff0c;来完成数据分析工作&#xff1b;如何在AI的回复中展示可视化的图表&#xff1b;如何在AI 的回复中加入E…...

C++学习:六个月从基础到就业——面向对象编程:接口设计

C学习&#xff1a;六个月从基础到就业——面向对象编程&#xff1a;接口设计 本文是我C学习之旅系列的第十五篇技术文章&#xff0c;重点讨论在C中进行接口设计的原则、技术和最佳实践。查看完整系列目录了解更多内容。 引言 在面向对象的软件开发中&#xff0c;良好的接口设计…...

花园灌溉问题

#include <bits/stdc.h> using namespace std;// 设置最大行列数&#xff08;题目限制 n, m ≤ 100&#xff09; const int N 104;// 标记某个格子是否已经被水浇灌 bool used[N][N];// 队列&#xff0c;用于 BFS&#xff0c;存储当前水源的位置 queue<pair<int,i…...

《AI大模型应知应会100篇》第22篇:系统提示词(System Prompt)设计与优化

第22篇&#xff1a;系统提示词(System Prompt)设计与优化 摘要 在大语言模型&#xff08;LLM&#xff09;应用中&#xff0c;系统提示词&#xff08;System Prompt&#xff09;是控制模型行为的核心工具之一。它不仅定义了模型的身份、角色和行为规范&#xff0c;还直接影响输…...

Jsp技术入门指南【六】jsp脚本原理及隐式对象

Jsp技术入门指南【六】jsp脚本原理及隐式对象 前言一、JSP 脚本元素1.1 声明1.2 表达式1.3 脚本标签 二、JSP 的隐式对象是什么三、隐式对象详解outrequestsessionapplicationconfigexception 前言 在之前的博客中&#xff0c;我们已经介绍了JSP的环境搭建、编译文件查找以及生…...

transient关键字深度解析

Java transient 关键字深度解析 1. 核心概念 (1) 基本定义 作用:标记字段不参与序列化 适用场景: 敏感数据(如密码、密钥) 临时计算字段 依赖运行时环境的字段(如Thread对象) (2) 语法示例 java public class User implements Serializable {private String username…...