分面中添加不同表格

简介

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

  1. 分面一页多图

  2. 基于分面的面积图绘制

  3. 分面中的细节调整汇总

  4. 分面中添加不同的直线

  5. 基于分面的折线图绘制

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

教程

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年学制),我只剩下一年多时间完成毕业论文了,时间还是非常紧张的。

  • 最近在办理留学签证,不久就要去新加坡啦,有点兴奋也有点焦虑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/251833.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

赵传和源代码就是设计-UMLChina建模知识竞赛第4赛季第23轮

参考潘加宇在《软件方法》和UMLChina公众号文章中发表的内容作答。在本文下留言回答。 只要最先答对前3题&#xff0c;即可获得本轮优胜。第4题为附加题&#xff0c;对错不影响优胜者的判定&#xff0c;影响的是优胜者的得分。 所有题目的回答必须放在同一条消息中&#xff0…

C语言之函数式宏

目录 函数和数据类型 函数式宏 函数和函数式宏 函数式宏和对象式宏 不带参数的函数式宏 函数式宏和逗号运算符 函数式宏和函数类似并且比函数更加灵活&#xff0c;下面我们就来学习函数式宏的相关内容。 函数和数据类型 我们来编写一个程序&#xff0c;它能计算出所读取…

【网络安全】网络防护之旅 - 点燃网络安全战场的数字签名烟火

​ &#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《网络安全之道 | 数字征程》⏰墨香寄清辞&#xff1a;千里传信如电光&#xff0c;密码奥妙似仙方。 挑战黑暗剑拔弩张&#xff0c;网络战场誓守长。 ​ 目录 &#x1f608;1. 初识…

计算机网络:DNS域名解析系统

我最近开了几个专栏&#xff0c;诚信互三&#xff01; > |||《算法专栏》&#xff1a;&#xff1a;刷题教程来自网站《代码随想录》。||| > |||《C专栏》&#xff1a;&#xff1a;记录我学习C的经历&#xff0c;看完你一定会有收获。||| > |||《Linux专栏》&#xff1…

Java 第13章 异常 本章作业

1 编程 两数相除的异常处理 各自属于哪些异常&#xff1a; 数据格式不正确 NumberformatException 缺少命令行参数 ArrayIndexOutOfBoundsException 除0异常处理 ArithmeticException ArrayIndexOutOfBoundsException 为数组下标越界时会抛出的异常&#xff0c;可以在检测到命…

swing快速入门(十三)

注释很详细&#xff0c;直接上代码 上一篇 新增内容 1.Dialog&#xff08;模式对话框和非模式对话框&#xff09; 模式对话框&#xff1a;在对话框没有消失之前无法操作父窗口 非模式对话框&#xff1a;对话框的出现不会影响对父窗口的操作 2.setButton&#xff08;对话框设置…

Chromadb词向量数据库总结

简介 Chroma 词向量数据库是一个用于自然语言处理&#xff08;NLP&#xff09;和机器学习的工具&#xff0c;它主要用于词嵌入&#xff08;word embeddings&#xff09;。词向量是将单词转换为向量表示的技术&#xff0c;可以捕获单词之间的语义和语法关系&#xff0c;使得计算…

arthas 线上排查问题基本使用

一、下载 [arthas下载地址]: 下载完成 解压即可使用 二、启动 java -Dfile.encodingUTF-8 -jar arthas-boot.jar 如果直接使用java -jar启动 可能会出现乱码 三、使用 启动成功之后 arthas会自动扫描当前服务器上的jvm进程 选择需要挂载的jvm进程 假如需要挂在坐标【1】的…

机器视觉工程师为什么如何找一个高薪的企业上班

竟然那么辛苦&#xff0c;为什么不找一个工资高的地方被压榨呢&#xff0c;在现在的公司学到的技术&#xff0c;给不到你应有的薪资&#xff0c;那你就只能跳槽来获得&#xff0c;各行各业都有牛人和大佬&#xff0c;各行各业都有高薪的人&#xff0c;只不过看你能不能到那个高…

nginx_rtmp_module 之 ngx_rtmp_live_module模块

模块作用 直播模块代码 ngx_rtmp_live_module.c&#xff0c;主要作用是&#xff1a;当客户端推流或者拉流的时候&#xff0c;创建的rtmp session会加入到 live 模块的存储链表中。 模块配置命令 static ngx_command_t ngx_rtmp_live_commands[] {{ ngx_string("live&…

【Linux】键盘高级操作技巧

命令行最为珍视的目标之一就是懒惰&#xff1a;用最少的击键次数来完成最多的工作。另一个目标是你的手指永 远不必离开键盘&#xff0c;永不触摸鼠标。因此&#xff0c;我们有必要了解一些键盘操作&#xff0c;使我们用起来更加的迅速和高效。 移动光标 在前面介绍过上下左右…

JVM-2-对象

对象创建 当Java虚拟机遇到一条字节码new指令时&#xff0c;首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用&#xff0c;并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有&#xff0c;那必须先执行相应的类加载过程。 为对象分配空间…

visual Studio MFC 平台实现图片的傅里叶变换

图片的傅里叶变换 本文主要讲解傅里叶变换的基本数学概念与物理概念&#xff0c;并本文使用visual Studio MFC 平台实现对傅里叶变换在图片上进行了应用。 一、傅里叶变换的原理 在这里推荐一篇讲得非常形象的文章通俗讲解&#xff1a;图像傅里叶变换 1.1 傅里叶变换原理的说明…

C++ 二叉搜索树(BST)的实现(非递归版本与递归版本)与应用

C 二叉搜索树的实现与应用 一.二叉搜索树的特点二.我们要实现的大致框架三.Insert四.InOrder和Find1.InOrder2.Find 五.Erase六.Find,Insert,Erase的递归版本1.FindR2.InsertR3.EraseR 七.析构,拷贝构造,赋值运算符重载1.析构2.拷贝构造3.赋值运算重载 八.Key模型完整代码九.二…

Prometheus 监控笔记(1):你真的会玩监控吗?

认识Prometheus Prometheus 是一种开源的系统和服务监控工具&#xff0c;最初由 SoundCloud 开发&#xff0c;后来成为继 Kubernetes 之后云原生生态系统中的一部分。在 Kubernetes 容器管理系统中&#xff0c;通常会搭配 Prometheus 进行监控&#xff0c;同时也支持多种 Expo…

股票价格预测 | Python实现基于ARIMA和LSTM的股票预测模型(含XGBoost特征重要性衡量)

文章目录 效果一览文章概述模型描述源码设计效果一览 文章概述 Python实现基于ARIMA和LSTM的股票预测模型(Stock-Prediction) Data ExtractionFormatting data for time seriesFeature engineering(Feature Importance using X

2023NEFU实习项目解析 - 中俄贸易供需服务平台

文章目录 项目概述项目初始化搭建项目初始框架配置Tomcat建立项目数据库编写统一返回类及其工具类编写数据库工具类通过Filter解决Response返回中文乱码问题使用Filter解决权限校验问题 项目主干开发用户登录企业管理&#xff08;分页查询原生实现&#xff09;上传VIP申请书模板…

【ArkTS】生命周期

页面生命周期 通常Entry修饰的组件称为页面&#xff0c;其拥有页面生命周期 onPageShow&#xff1a;页面每次显示时触发。onPageHide&#xff1a;页面每次隐藏时触发&#xff08;通常是路由跳转到其他页面了&#xff09;。onBackPress&#xff1a;当用户点击返回按钮时时触发…

【LeetCode刷题-哈希表】--187.重复的DNA序列

187.重复的DNA序列 本题就是找到长度为10的字符出现次数大于2的 子串序列 方法&#xff1a;使用哈希表 class Solution {public List<String> findRepeatedDnaSequences(String s) {List<String> ans new ArrayList<String>();HashMap<String,Integer&g…

GitLab下载地址是127.0.0.1如何修改ip

问题&#xff1a; 在下图位置之前我的ip是127.0.0.1&#xff0c;那我是如何修改的呢&#xff1f;请看下文 解决方案&#xff1a; 配置 GitLab站点 Url和端口号 GitLab 默认的配置文件路径是 /etc/gitlab/gitlab.rb # 修改配置文件 $ sudo vi /etc/gitlab/gitlab.rb 默认的站…