专栏首页数据 学术 商业 新闻全了!!表格可视化制作技巧大汇总~~

全了!!表格可视化制作技巧大汇总~~

今天小编就来汇总一下R中表格(Table) 绘制方法,让你的数据展示不再单一。这里主要包括单一表格绘制和可视化+表格 两个方面。虽然表格制作可能Excel更擅长,但考虑到连贯性等问题,这里这里还是觉得有必要介绍一下,具体内容如下:

  • R-单一表格绘制
  • R-可视化+表格的”混搭“

R-单一表格绘制

这一部分可能有很多优秀的第三方包可以制作,这里小编主要介绍3个优秀的表格制作包,分别为R-DT、R-gt和R-sjPlot,其他表格绘制工具小编也会在这一部分结尾处汇总。

R-DT交互式表格制作

R-DT包可生成交互式HTML表格,这里小编举几个例子,如下:

「样例一」:

library(DT)
datatable(iris)

Example01 Of DT::datatable()

「样例二」:定制表格

# 定制表格
datatable(iris) %>% 
  formatStyle('Sepal.Length', fontWeight = styleInterval(5, c('normal', 'bold'))) %>%
  formatStyle(
    'Sepal.Width',
    color = styleInterval(c(3.4, 3.8), c('white', 'blue', 'red')),
    backgroundColor = styleInterval(3.4, c('gray', 'yellow'))
  ) %>%
  formatStyle(
    'Petal.Length',
    background = styleColorBar(iris$Petal.Length, 'steelblue'),
    backgroundSize = '100% 90%',
    backgroundRepeat = 'no-repeat',
    backgroundPosition = 'center'
  ) %>%
  formatStyle(
    'Species',
    transform = 'rotateX(45deg) rotateY(20deg) rotateZ(30deg)',
    backgroundColor = styleEqual(
      unique(iris$Species), c('lightblue', 'lightgreen', 'lightpink')
    ))

Example02 Of DT::datatable()

更多其他案例大家可参考:R-DT官网[1]

R-gt出版级别表格制作

首先,我们看一下gt绘制表格的主要参数,如下图(由于较为简单,这里直接给出英文原图):

Parts Of a gt Table

「样例一」:

library(gt)
library(tidyverse)
library(glue)

# Define the start and end dates for the data range
start_date <- "2010-06-07"
end_date <- "2010-06-14"

# Create a gt table based on preprocessed
# `sp500` table data
sp500 %>%
  filter(date >= start_date & date <= end_date) %>%
  select(-adj_close) %>%
  gt() %>%
  tab_header(
    title = "S&P 500",
    subtitle = glue::glue("{start_date} to {end_date}")
  ) %>%
  fmt_date(
    columns = date,
    date_style = 3
  ) %>%
  fmt_currency(
    columns = c(open, high, low, close),
    currency = "USD"
  ) %>%
  fmt_number(
    columns = volume,
    suffixing = TRUE
  )

Example Of gt table make

更多其他案例大家可参考:R-gt官网[2]

R-sjPlot回归模型表格制作

R-sjPlot包之前有介绍过其绘制图表能力(),小编着重介绍其绘制表格的能力。

「注意」:其绘制的表格结果都是回归模型的结果。案例如下:

「样例一」:regression results table

library(sjPlot)
library(sjmisc)
library(sjlabelled)

# sample data
data("efc")
efc <- as_factor(efc, c161sex, c172code)

m1 <- lm(barthtot ~ c160age + c12hour + c161sex + c172code, data = efc)
tab_model(m1)

Example Of sjPlot::tab_model()

「样例二」:定制化绘制

tab_model(
  m1,
  CSS = list(
    css.depvarhead = 'color: red;',
    css.centeralign = 'text-align: left;', 
    css.firsttablecol = 'font-weight: bold;', 
    css.summary = 'color: blue;'
  )
)

Example Of sjPlot::tab_model(CSS=**)

更多其他案例大家可参考:R-sjPlot回归表格绘制[3]

当然,除了上面介绍的外,下面小编再汇总列出其他的优秀第三方R包,小伙伴们可自行选择学习哈~如下:

  • R-gtsummary
  • R-kableExtra
  • R-formattable
  • R-reactable
  • R-flextable

R-可视化+表格的”混搭“

这一部分小编主要介绍如何在可视化绘制(ggplot2体系) 中添加表格内容,用以更加生动的展现数据价值。这里主要介绍R-ggpubr包和R-ggpmisc包。内容如下:

ggpubr

R-ggpubr包之前的推文(统计绘图 | 一行代码教你绘制顶级期刊要求配图)也介绍其绘制科研图表的方便些,这次的推文则重点介绍其绘制表格的函数,当然还是可以和ggplot2图表对象一起展示的。如下:

「样例一」:

library(ggpubr)
df <- head(iris)

# Default table
# Remove row names using rows = NULL
ggtexttable(df, rows = NULL)

Example Of ggpubr::ggtexttable()

「样例二」:ttheme("mBlue")

ggtexttable(df, rows = NULL, theme = ttheme("mBlue"))

Example Of ggpubr::ggtexttable(theme = ttheme("mBlue"))

「样例三」:定义自己需要的表格

ggtexttable(df, rows = NULL,
           theme = ttheme(
             colnames.style = colnames_style(color = "white", fill = "#8cc257"),
             tbody.style = tbody_style(color = "black", fill = c("#e8f3de", "#d3e8bb"))
           )
)

Example Of ggpubr::ggtexttable() make table you want

更多其他案例大家可参考:R-ggpubr表格绘制[4]

ggpmisc

R-ggpmisc包中绘制表格的函数为stat_fit_tb(),其功能主要是一些统计结果和拟合结果进行表格展示,当然你也可以看下之前介绍的推文(统计绘图 | 一行代码教你绘制顶级期刊要求配图)。如下:

「样例一」:

library(ggpmisc)
library(ggrepel)
library(xts)
library(lubridate)
library(nlme)
library(quantreg)
library(broom)
library(broom.mixed)
set.seed(4321)
# generate artificial data
x <- 1:100
y <- (x + x^2 + x^3) + rnorm(length(x), mean = 0, sd = mean(x^3) / 4)
my.data <- data.frame(x, 
                      y, 
                      group = c("A", "B"), 
                      y2 = y * c(0.5,2),
                      block = c("a", "a", "b", "b"),
                      wt = sqrt(x))

可视化绘制:

formula <- y ~ x + I(x^2) + I(x^3)
plot04 <- ggplot(my.data, aes(x, y)) +
  geom_point(shape=21,fill="#BC3C28",colour="black",size=3) +
  geom_smooth(method = "lm", formula = formula) +
  stat_fit_tb(method = "lm",
              method.args = list(formula = formula),
              tb.vars = c(Parameter = "term", 
                          Estimate = "estimate", 
                          "s.e." = "std.error", 
                          "italic(t)" = "statistic", 
                          "italic(P)" = "p.value"),
              label.y = "top", label.x = "left",
              parse = TRUE) +
 labs(
    title = "Example of <span style='color:#D20F26'>ggpmisc::stat_fit_tb function</span>",
    subtitle = "processed charts with <span style='color:#1A73E8'>stat_fit_tb()</span>",
    caption = "Visualization by <span style='color:#0057FF'>DataCharm</span>") +
  hrbrthemes::theme_ipsum(base_family = "Roboto Condensed")  +
  theme(
    plot.title = element_markdown(hjust = 0.5,vjust = .5,color = "black",
                                  size = 20, margin = margin(t = 1, b = 12)),
    plot.subtitle = element_markdown(hjust = 0,vjust = .5,size=15),
    plot.caption = element_markdown(face = 'bold',size = 12)
      )

Example01 Of ggpmisc::stat_fit_tb()

「样例二」:

ggplot(chickwts, aes(factor(feed), weight)) +
  stat_summary(fun.data = "mean_se") +
  stat_fit_tb(tb.type = "fit.anova", label.x = "left", size = 3) +
  scale_x_discrete(expand = expansion(mult = c(0.2, 0.5))) +
  coord_flip() +
   labs(
    title = "Example of <span style='color:#D20F26'>ggpmisc::stat_fit_tb function</span>",
    subtitle = "processed charts with <span style='color:#1A73E8'>stat_fit_tb()</span>",
    caption = "Visualization by <span style='color:#0057FF'>DataCharm</span>") +
  hrbrthemes::theme_ipsum(base_family = "Roboto Condensed")  +
  theme(
    plot.title = element_markdown(hjust = 0.5,vjust = .5,color = "black",
                                  size = 20, margin = margin(t = 1, b = 12)),
    plot.subtitle = element_markdown(hjust = 0,vjust = .5,size=15),
    plot.caption = element_markdown(face = 'bold',size = 12)
      )

Example02 Of ggpmisc::stat_fit_tb()

更多其他案例大家可参考:R-ggpmisc表格绘制[5]

总结

这篇推文小编几乎汇总了R中所有关于表格(table)制作的所有方法,包括单独绘制以及和ggplot2对象一起组合的表格绘制,可能还有好多优秀的包没有介绍到哈~,希望可以给大家带来些许帮助哈~

参考资料

[1]

R-DT官网: https://rstudio.github.io/DT/。

[2]

R-gt官网: https://gt.rstudio.com/index.html。

[3]

R-sjPlot回归表格绘制: https://strengejacke.github.io/sjPlot/index.html。

[4]

R-ggpubr表格绘制: https://rpkgs.datanovia.com/ggpubr/reference/ggtexttable.html。

[5]

R-ggpmisc表格绘制: https://docs.r4photobiology.info/ggpmisc/reference/stat_fit_tb.html。

本文分享自微信公众号 - DataCharm(shujumeili),作者:宁俊骐

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-08-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一行代码绘制出朋克风格可视化作品!?除了Python,这个技巧也可以~~

    有小伙伴们问我“Python有mplcyberpunk库可以绘制赛博朋克风的可视化作品,那R可有类似的包进行绘制呢?”当然有啦,今天小编就给大家推荐一个可以绘制...

    DataCharm
  • 如何打造高性能大数据分析平台

    大数据分析系统作为一个关键性的系统在各个公司迅速崛起,但是这种海量规模的数据带来了前所未有的性能挑战。同时,如果大数据分析系统无法在第一时间为运营决策提供关键数...

    华章科技
  • 如何打造高性能大数据分析平台

    原文:Building High Performance Big Data Analytics Systems 译者:袁璞,圣特尔•E店宝大数据架构师,关注高性...

    CSDN技术头条
  • 如何打造高性能大数据分析平台

    大数据分析系统作为一个关键性的系统在各个公司迅速崛起,但是这种海量规模的数据带来了前所未有的性能挑战。同时,如果大数据分析系统无法在第一时间为运营决策提供关键数...

    灯塔大数据
  • PowerBI 打造全动态最强超级矩阵

    作为 2018年 的终结篇并同时开启 2019,Excel120 将以此篇揭示 PowerBI 可以做出的最强大图表以及固定套路。

    BI佐罗
  • 如何打造高性能大数据分析平台

    译者:袁璞,圣特尔•E店宝大数据架构师,关注高性能或可用架构、大数据技术、机器学习。

    华章科技
  • 【译文】如何打造高性能大数据分析平台

    大数据是最近IT界最常用的术语之一。然而对大数据的定义也不尽相同,所有已知的论点例如结构化的和非结构化、大规模的数据等等都不够完整。大数据系统通常被认为具有数据...

    华章科技
  • 只需Ctrl+T,让 Excel 变身为「超级表格」

    最近发现好多软件号写起了Excel文章,哈哈哈,这是咋啦?作为一个数据号,咱也分享一些Excel技巧吧。

    朱小五
  • 绘图技巧 | 超多种类在线可视化图表制作工具推荐

    今天小编发现一个宝藏数据网站,可以让我们告别代码绘制出精美的数据可视化作品(一些不想写代码的小伙伴们有福了哈)。PlotDB-你的资料数据化服务平台。是一个由宝...

    DataCharm
  • 升值加薪Excel神助攻,数据透视表堪称神器!

    VLOOKUP、数据透视表、条件格式…你用这几个技巧做,80%的工作需求都能解决。今天特意整理了这些操作技巧,拯救同在“表海”中挣扎的你,让你的工作效率超乎想...

    华章科技
  • 转载:程序员都应该访问的最佳网站

    Zoctopus
  • 酷炫的 动态可视化 交互大屏,用Excel就能做!

    前段时间用tableau做了可视化大屏,大家有的说说没学过tableau,有的说不会做,但就是觉得很炫。

    朱小五
  • 【必】PowerBI 报告设计思想 - 切换元素篇

    在设计了布局和导航后,所有界面的元素都可以一一排布了。在制作PowerBI报表的过程中,会有一个核心的问题:信息密度。

    BI佐罗
  • 如何做一份漂亮的年终总结报告?教你5个实用套路

    不知不觉四季度就过去三分之一了,马上要年底了,一年一度的年终总结报告又要让不少人头疼了,辛苦一年的成绩如何淋漓尽致地展现在领导面前,让领导多给点年终奖呢?

    大数据分析不是事儿
  • 史上No.1全的数据透视表用法,整理齐了

    导读:数据透视表是Excel中最实用最常用的功能,没有之一。今天对数据透视表进行一次全面的整理,共五大类,23个技巧。

    华章科技
  • 数据分析汇报用这个神器,瞬间弃用Excel和PPT

    每到月底季度底都是数据报告汇报的高峰期,各种部门数据的汇总报告、监控报告、经营报告。

    大数据分析不是事儿
  • 数据透视表入门

    今天跟大家分享有关数据透视表入门的技巧! 数据透视表是excel附带功能中为数不多的学习成本低、投资回报率高、门槛低上手快的良心技能! 对于日程的排序、汇总、...

    数据小磨坊
  • Android编程录音工具类RecorderUtil定义与用法示例

    本文实例讲述了Android编程录音工具类RecorderUtil定义与用法。分享给大家供大家参考,具体如下:

    砸漏
  • 关于数据可视化图表的制作,你需要关注的30个小技巧

    优秀的数据可视化图表只是罗列、总结数据吗?当然不是!数据可视化其真正的价值是设计出可以被读者轻松理解的数据展示,因此在设计过程中,每一个选择,最终都应落脚于读者...

    CDA数据分析师

扫码关注云+社区

领取腾讯云代金券