前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >43. R 数据可视化(一: 用R制作漂亮的表格)

43. R 数据可视化(一: 用R制作漂亮的表格)

作者头像
北野茶缸子
发布2021-12-17 10:48:09
3.2K0
发布2021-12-17 10:48:09
举报
文章被收录于专栏:北野茶缸子的专栏

参考:https://www.twblogs.net/a/5c74cddcbd9eee339917b7b2https://towardsdatascience.com/exploring-the-gt-grammar-of-tables-package-in-r-7fff9d0b40cd

前言

想到表格,是不是就是excel,或者直接用ppt 来肝?

R 天然的就有强大的处理数据生成各种表格的能力,岂不美哉?

今天就来学习一下gt 包:

学习网址:https://gt.rstudio.com/

我的目标是画出:

获取内容

其实也就是标准的数据框格式。

需要注意的是,当导入gt 中绘制表格时,会忽略掉行名与列名。

开始操作

0.基本表格

加载相关包。尝试直接用gt 获得最基本的图表:

代码语言:javascript
复制
library(gt)
library(tidyverse)
library(glue)

gt(gt_data)

image.png

1. 添加行名的标签

也就是:

可以直接在gt 函数中指定rowname_col:ps:其中的行的组别可以用参数groupname_col 特别指定,也可以使用重复的名称,直接给rowname_col 指定多个值。

代码语言:javascript
复制
gt_tbl <- gt_data %>%
  gt(rowname_col = "names", "group_label")

image.png

2. 头部信息

tab_header 可以添加头信息,其中title 与subtitle 分别对应标题和子标题:

代码语言:javascript
复制
gt_tbl <-
  gt_tbl %>%
  tab_header(
    title = md("**Comparison of genomic alterations**"),
    subtitle = md("between *BRCA1/2* mutation carriers and non-carriers Among different prognostic variables")
  )
gt_tbl

这里使用md() 可以在文本内容中支持md 语法:

3. 添加分组和行的标签名(stubhead label)

使用tab_spanner 函数添加分组,label 指定分组名,columns指定同一分组的多个列。需要使用vars 选定这些列名:

代码语言:javascript
复制
gt_tbl <- 
  gt_tbl %>%
  tab_spanner(
    label = "BRCA1",
    columns = vars(`carrier(N=17)`, `non-carrier(N=262)`, `P-value-1`)
  ) %>%
  tab_spanner(
    label = "BRCA2",
    columns = vars(`carrier(N=7)`, `non-carrier(N=272)`, `P-value-2`)
  ) %>%
  tab_stubhead(label = md("**Variables**"))
gt_tbl

image.png

4. 修改文本字体位置

代码语言:javascript
复制
gt_tbl <- 
  gt_tbl %>%
  tab_style(
    style = list(
      cell_text(font = "Oswald",
                align = "center",
                weight = "bold")
    ),
    locations = list(
      cells_data(everything())
    )
    )

使用tab_style 命令调整,其中style 指定文本风格,locations 指定文本设定的位置(标题、数据、信息框等等),比如cells_data 就是指定body cell的:

效果如下:

我们还可以指定某个cell 以突出其中内容:

代码语言:javascript
复制
## 设置字体
gt_tbl <- 
  gt_tbl %>%
  tab_style(
    style = list(
      cell_text(
                weight = "bold"
                ),
      cell_fill(color = "#F9E3D6")
    ),
    cells_body(
      columns = vars(`P-value-1`),
      rows = `P-value-1` <= 0.05)
    )
gt_tbl

image.png

5. 给表格增加一个背景色

tab_options 函数是专门用来调节列表的输出内容的,这里不多赘述,只用来添加背景色:

代码语言:javascript
复制
## 设置背景
gt_tbl %>% 
  tab_options(
    table.background.color = "lightcyan"
  )

image.png

6. 合并重复数值

在我的图表中,对应的P 值是重复的,不太好看:

这里我直接在edit 中手动将重复的删除(你也可以写代码),就会产生NA 值。

接着使用fmt_missing 函数,便可以实现替换缺失值:

代码语言:javascript
复制
## 去除NA 值
gt_tbl <- gt_tbl %>%
  fmt_missing(
    columns = TRUE,
    missing_text = ""
  )
gt_tbl

当然我这里是“曲线修改”了,如果可以像excel中直接合并单元格是更好的了。

7. 表格的输出

可以用gtsave 直接保存为多种类型的数据:

  • html
代码语言:javascript
复制
gt_tbl %>% gtsave("tab_1.html")
  • PNG&PDF
代码语言:javascript
复制
# tab_1 %>% gtsave("tab_1.png", zoom = 2.5, expand = 10)
# tab_1 %>% gtsave("tab_1.pdf", path = "~")

更多学习的内容

可以参见gt 包官方提供的r cloud 测试服务:https://rstudio.cloud/project/779965

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 北野茶缸子 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 获取内容
  • 开始操作
    • 0.基本表格
      • 1. 添加行名的标签
        • 2. 头部信息
          • 3. 添加分组和行的标签名(stubhead label)
            • 4. 修改文本字体位置
              • 5. 给表格增加一个背景色
                • 6. 合并重复数值
                  • 7. 表格的输出
                  • 更多学习的内容
                  相关产品与服务
                  测试服务
                  测试服务 WeTest 包括标准兼容测试、专家兼容测试、手游安全测试、远程调试等多款产品,服务于海量腾讯精品游戏,涵盖兼容测试、压力测试、性能测试、安全测试、远程调试等多个方向,立体化安全防护体系,保卫您的信息安全。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档