分面中添加不同表格

简介: 分面中添加不同表格

简介

关于分面的推文,小编根据实际科研需求,已经分享了很多技巧。例如:

  1. 分面一页多图
  2. 基于分面的面积图绘制
  3. 分面中的细节调整汇总
  4. 分面中添加不同的直线
  5. 基于分面的折线图绘制

最近遇到了另一个需求:在分面中添加不同的表格。网上搜索后找到了不错的解决方案,见 stack overflow[1]。本期就针对该问题,给出合适的解决方案。

教程

library(ggpp)
library(dplyr)
library(tibble)

数据介绍

mpg 数据集作为例子,经过数据预处理后,前几行数据如下所示:

myData <- filter(mpg, manufacturer == "audi" | manufacturer == "chevrolet")

绘图

  1. 分面

根据数据集,以 hwy 为 x 轴,cty 为 y 轴,绘制散点图并附上平滑曲线。最后以 manufacturer 进行分面,得到的结果如下:

gg <- ggplot(myData, aes(x=hwy, y=cty, colour=model)) + 
  facet_wrap(~ manufacturer) + 
  geom_point(size = 3) +
  geom_smooth(stat="identity")

  1. 添加表格

2.1 数据汇总,便于后续加入到表格中。

tb <- myData %>%
  group_by(manufacturer, model) %>%
  summarize(var1 = round(mean(displ)), var2 = round(mean(cyl))) %>%
  ungroup()

2.2 转化为 list 形式,便于后续使用。

tbs <- lapply(split(tb, tb$manufacturer), "[", -1)

2.3 转化为 tibble 格式,并加入相关信息

注意:这里的 manufacturer 与前面分面相对应。

df <- tibble(x = rep(-Inf, length(tbs)), 
             y = rep(Inf, length(tbs)), 
             manufacturer = levels(as.factor(tb$manufacturer)), 
             tbl = tbs)

df 数据集

  1. 合并图形和表格
gg + geom_table(data = df, aes(x = x, y = y, label = tbl),
                hjust = -0.2, vjust = 1.2)

  1. 美化图形
library(viridis)
gg + geom_table(data = df, aes(x = x, y = y, label = tbl),
                hjust = -0.2, vjust = 1.2,
                table.theme = ttheme_gtstripes) + 
  scale_color_viridis(discrete = TRUE) + theme_bw() +
  theme(panel.grid = element_blank(),
        legend.position = "bottom",
        legend.direction = "horizontal") +
  guides(color=guide_legend(nrow=1))

小编有话说

  • 上个月博士开题完成了,如果想正常毕业的话(3年学制),我只剩下一年多时间完成毕业论文了,时间还是非常紧张的。
  • 最近在办理留学签证,不久就要去新加坡啦,有点兴奋也有点焦虑。

参考资料

[1]

stack overflow: https://stackoverflow.com/questions/25554548/adding-sub-tables-on-each-panel-of-a-facet-ggplot-in-r/58464596#58464596?newreg=9fc3d38711e945d1b5d37847f0f5d0af

目录
相关文章
|
2月前
R语言基于表格文件的数据绘制具有多个系列的柱状图与直方图
【9月更文挑战第9天】在R语言中,利用`ggplot2`包可绘制多系列柱状图与直方图。首先读取数据文件`data.csv`,加载`ggplot2`包后,使用`ggplot`函数指定轴与填充颜色,并通过`geom_bar`或`geom_histogram`绘图。参数如`stat`, `position`, `alpha`等可根据需要调整,实现不同系列的图表展示。
|
2月前
|
数据挖掘 数据处理 Python
Pandas表格样式美化指南:应用条形图
Pandas表格样式美化指南:应用条形图
37 0
|
6月前
|
数据可视化 数据挖掘 定位技术
R语言读取Excel表格数据并绘制多系列柱状图、条形图
R语言读取Excel表格数据并绘制多系列柱状图、条形图
165 1
|
6月前
如何将Excel两列数据转换为统计图、曲线图、折线图?如何自定义某一列作为Excel的统计图横纵坐标?
如何将Excel两列数据转换为统计图、曲线图、折线图?如何自定义某一列作为Excel的统计图横纵坐标?
|
定位技术
ArcMap | 出图小技巧——比例尺、鹰眼图、表格、文本、图片
ArcMap | 出图小技巧——比例尺、鹰眼图、表格、文本、图片
376 0
C# GDI+绘图(四)实现网格绘制,并填充相应的表格内容
C# GDI+绘图(四)实现网格绘制,并填充相应的表格内容
|
数据可视化 数据挖掘
可视化 | Pyecharts象形柱图--图例自定义
可视化 | Pyecharts象形柱图--图例自定义
|
SQL 自然语言处理 搜索推荐
ggplot2 | 关于标题,坐标轴和图例的细节修改,你可能想了解
ggplot2 | 关于标题,坐标轴和图例的细节修改,你可能想了解
350 0
|
监控 数据可视化 前端开发
S2 1.0:这个表格 「不简单」
S2 1.0:这个表格 「不简单」
284 0