ggplot2的组图拓展包(1):patchwork(中篇)

news2024/12/27 1:42:12

专注系列化高质量的R语言教程

推文索引 | 联系小编 | 付费合集


上篇和上篇续介绍了使用操作符进行组图的方法,这里默认读者已经能够理解各种操作符在本篇推文中的使用场景。本篇目录如下:

  • 0 示例图形

  • 6 plot_layout函数(下)

    • 6.1 guides参数

    • 6.2 guide_area函数

    • 6.3 design参数

    • 6.4 area函数

  • 7 plot_annotation函数

    • 7.1 添加标题

    • 7.2 子图编号

  • 8 inset_element函数

0 示例图形

首先,参考官方文档[1],生成如下4个ggplot对象:

library(ggplot2)
p1 <- ggplot(mtcars) + 
  geom_point(aes(mpg, disp/100, col = hp)) + 
  ggtitle('Plot 1')

p2 <- ggplot(mtcars) + 
  geom_point(aes(mpg, wt, col = hp)) + 
  ggtitle('Plot 2')

p3 <- ggplot(mtcars) + 
  geom_point(aes(hp, wt, colour = mpg)) +
  scale_colour_continuous(low = "white", high = "red") +
  ggtitle('Plot 3')

p4 <- ggplot(mtcars) + 
  geom_bar(aes(gear)) + 
  facet_wrap(~cyl) + 
  ggtitle('Plot 4')

6 plot_layout函数(下)

patchwork(上篇)2.2节已经介绍了plot_layout()函数的部分功能。

通过前面两篇推文的学习,读者大概已经能够理解嵌套水平的概念了。plot_layout()函数组图布局是针对当前嵌套水平的子图。

library(patchwork)

p1 + p2/p3 + p4 +
  plot_layout(nrow = 2, heights = c(2,1)) &
  theme_minimal(base_family = "mono")
682c26fff9f856d8b73ed998fb7dbce1.png
  • p2p3处于低一层次的嵌套水平,因此共同占据一个子图位置。

6.1 guides参数

guides参数用来调整图例,它有三个取值情况,其中guides = "collect"比较有用,它表示把所有子图的图例集中一起,并删除重复图例。

集中后的图例默认放在整幅图的右侧:

p1 + p2 + p3 + p4 +
  plot_layout(nrow = 2, guides = "collect") &
  theme_minimal(base_family = "mono")
f883016e4559b10b0e34c2335bf2ad00.png
  • p1p2的图例相同,集中放置后只保留一个。

使用theme()函数调整图例位置:

p1 + p2 + p3 + p4 +
  plot_layout(nrow = 2, guides = "collect") &
  theme_minimal(base_family = "mono") &
  theme(legend.position = "left")
46654b2d37b90007c4d1ebcbb6fa521a.png

6.2 guide_area函数

guide_area()是一个辅助函数,用来配合guides = "collect"使用。它可以将集中后的图例视为一个子图,参与组图空间的分配:

p1 + p2 + p3 +
  guide_area() + ## 该函数 
  plot_layout(nrow = 2, guides = "collect") &
  theme_minimal(base_family = "mono") &
  theme(legend.box = "horizontal")
1fce9acb1f38f846f8cbef4c2b11fa65.png
  • 使用guide_area()函数后图例得以和其他子图一样占据单独的位置。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS3-数据可视化

2D动画 - transform CSS3 transform属性允许你旋转&#xff0c;缩放&#xff0c;倾斜或平移给定元素。 Transform是形变的意思&#xff08;通常也叫变换&#xff09;&#xff0c;transformer就是变形金刚 常见的函数transform function有&#xff1a; 平移&#xff1a;transl…

实际开发中如何存储密码(md5加盐bcrypt)golang

文章目录简介加盐的加密方式md5 加盐方式bcrypt 方式简介 一般前端把用户密码发给服务端&#xff0c;服务端实际业务中如何存储密码呢&#xff0c;如何存储密码才能保证密码不被开发者获取或者被截取呢&#xff0c;保证密码的安全 加盐的加密方式 现在的企业开发大都采用这种…

凌恩生物文献分享|颠覆性的宏基因组新思路,速来get!

非人灵长类动物&#xff08;NHP&#xff09;是人类的近亲&#xff0c;为宿主-微生物互作的研究提供了一个很好的例子。近年来研究主要集中在野生灵长类动物的肠道微生物群&#xff0c;这将有助于了解灵长类及其肠道微生物群的进化&#xff0c;但仍然缺乏关于野生种群肠道微生物…

通用后台管理系统-前端搭建

一 背景 基于vuespringboot 搭建一套通用管理后台 主要包括用户管理模块、权限模块、菜单模块 二 环境信息 2.1 前端工具版本 2.1.1 npm 版本 PS D:\front> npm -v 8.5.0PS D:\front> npm config get registry https://registry.npm.taobao.org/ PS D:\front>2.1…

埋点tracker:前端埋点服务-技术要点梳理

一、背景埋点方案&#xff0c;前端涉及到哪些技术要点&#xff0c;本文做简单的梳理和总结。二、指纹追踪技术&#xff1a;识别到用户及设备浏览器&#xff1a;浏览器指纹_snowli的博客-CSDN博客三、用户设备信息&#xff08;navigator&#xff09;navigator.userAgent四、页面…

利用Mysql存储过程造百万级数据

1.准备工作&#xff08;1&#xff09;由于是使用存储过程&#xff0c;mysql从5.0版开始支持存储过程&#xff0c;那么需要mysql的版本在5.0或者以上。如何查看mysql的版本&#xff0c;使用下面sql语句查看&#xff1a;&#xff08;2&#xff09;创建两张表&#xff0c;表结构一…

Android Crash和ANR监控

文章目录一、Crash1.1 概念1.2 类型二、ANR2.1 概念2.2 类型2.2.1 KeyDispatchTimeout&#xff08;常见&#xff09;2.2.2 BroadcastTimeout2.2.3 ServiceTimeout2.2.4 ContentProviderTimeout三、测试中如何关注3.1 Crash测试关注方法3.2 ANR测试关注方法四、如何记录与处理4.…

C++复习笔记--STL的string容器和vector容器

1--string容器string 本质上是一个类&#xff0c;其不同于指针 char*&#xff0c;string 类的内部封装了 char*&#xff0c;用于管理字符串&#xff0c;是一个 char* 型的容器&#xff1b;1-1--string构造函数string 的构造函数原型&#xff1a;string(); // 创建一个空的字符串…

媒体邀约的形式和步骤

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 做媒体服务很多年&#xff0c;今天就与大家分享下媒体邀约都有哪些形式&#xff1a; 1&#xff0c;电话邀约&#xff1a;通过电话与媒体记者进行沟通&#xff0c;邀请其参加活动或接受采…

CDC 长沙站丨云原生技术研讨会:数字兴链,云化未来!

一、活动信息&#xff1a;活动主题&#xff1a;CDC 长沙站丨云原生技术研讨会活动时间&#xff1a;2023 年 3 月 14 日下午 14&#xff1a;30-17&#xff1a;30活动地点&#xff1a;长沙市岳麓区-拓维信息总部 1 楼多功能厅活动参与方式&#xff1a;免门票参与&#xff0c;戳此…

船舶自动驾驶避撞规则

1无人船避碰阶段 如图1所示。 第一阶段&#xff1a;感知阶段。使用雷达、AIS、激光雷达和视觉传感器等感知传感器进行障碍物检测。利用感知到的信息&#xff0c;获得障碍物的运动信息。 第二阶段&#xff1a;决策阶段。利用障碍物的运动信息做出避免冲突的决策。在这一阶段&am…

数据结构排序比较

排序的概念及其运用 (1)排序的概念 排序:所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录&#xff0c;若经过排序&am…

Spring-AOP工作流程

Spring-AOP工作流程 3&#xff0c;AOP工作流程 3.1 AOP工作流程 由于AOP是基于Spring容器管理的bean做的增强&#xff0c;所以整个工作过程需要从Spring加载bean说起: 流程1:Spring容器启动 容器启动就需要去加载bean,哪些类需要被加载呢?需要被增强的类&#xff0c;如:B…

C++ Qt自建网页浏览器

C Qt自建网页浏览器如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01;前言这篇博客针对<<C Qt自建网页浏览器>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。 学习与应用推荐首选。文…

手把手教你实现书上的队列,进来试试?

一.队列的基本概念队列的定义队列&#xff08;queue&#xff09;是只允许在一端进行插入操作&#xff0c;而在另一端进行删除操作的线性表。队列是一种先进先出&#xff08;First In First Out&#xff09;的线性表&#xff0c;简称FIFO。允许插入的一端称为队尾&#xff0c;允…

如何取消电脑开机密码?1分钟可学会,快速取消

​如果小伙伴觉得每次开机都需要输入密码很烦&#xff0c;那么小伙伴应该学会如何取消电脑开机密码。本篇文章&#xff0c;小编将以图文教学的方式&#xff0c;向小伙伴介绍如何在短短的1分钟内&#xff0c;就能够取消电脑开机密码&#xff0c;让小伙伴摆脱烦人的开机密码&…

Pytorch优化器Optimizer

优化器Optimizer 什么是优化器 pytorch的优化器&#xff1a;管理并更新模型中可学习参数的值&#xff0c;使得模型输出更接近真实标签 导数&#xff1a;函数在指定坐标轴上的变化率 方向导数&#xff1a;指定方向上的变化率&#xff08;二元及以上函数&#xff0c;偏导数&am…

windows安装docker-小白用【避坑】【伸手党福利】

目录实操开启 Hyper-V 和容器特性下载docker安装dockercmd中&#xff0c;使用命令测试是否成功报错解决办法&#xff1a;下载linux模拟器wsl&#xff1a;双击打开docker重新打开cmd&#xff0c;输入命令&#xff0c;成功显示sever和clinet实操 开启 Hyper-V 和容器特性 控制面…

项目进度管理:项目经理应该怎么做?

项目经理的职责是非常清晰的、界面分明的。项目经理经常忙碌的原因是&#xff0c;缺乏规划&#xff0c;觉得很多业务都跟自己相关&#xff0c;但不知道到底要做哪些工作&#xff0c;没有把多个角色分清楚。 1、目标。 项目目标是实施项目所要达到的期望结果&#xff0c;一个明…

基于嵌入式linux的OpenSSL源码移植(基于arm64)

SSL是Secure Sockets Layer&#xff08;安全套接层协议&#xff09;的缩写&#xff0c;可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时&#xff0c;提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支…