合并图形并共享同一个图例的三种方法

news2024/11/26 9:31:30

简介

小编在科研中,需要将多个图形进行合并,并共享同一个图例。此时应该如何实现?关于图形合并的相关推文写了很多了:R可视乎|合并多幅图形、cowplot包,ggplot2图形排版R包。 但是对于今天这个问题,小编很少注意,在进行查阅资料后,将该技巧进行总结。主要介绍三种方法,参考资料如下:cowplot、ggpubr、patchwork。

绘制示例图形

这里以 mpg 数据集为例,前几行数据预览如下:

displ/cty 为 x 轴, hwy 为 y 轴,颜色用 class 来刻画,绘制散点图。并进行了简单细节调整。

library(ggplot2)
library(viridis)
## 创建图形
plot1 <- ggplot(data = mpg, aes(x = displ, y = hwy, color = class)) +
  geom_point(size=1.7) + scale_color_viridis(discrete = T) + 
  theme_bw() + theme(panel.grid = element_blank())  
  
plot2 <- ggplot(data = mpg, aes(x = cty, y = hwy, color = class)) +
  geom_point(size=1.7) + scale_color_viridis(discrete = T) +
  theme_bw() + theme(panel.grid = element_blank())

此时合并后的结果如下:

可以看到,两个图形的图例是相通的,为了图形更佳清晰,美观。我们需要将两个图形的图例进行合并。接下来,小编整理了三种方法供大家参考:

方法一 ggpubr::ggarrange()

使用 ggarrange() 并配合参数 common.legend = TRUE。此外,调整共享图例位置使用 legend="top"

library(ggpubr)
ggarrange(plot1, plot2, common.legend = TRUE, legend="top")

方法二 cowplot::plot_grid()

使用 plot_grid() 并配合参数 get_legend()提取某个图形的图例。

library(cowplot)
combined_plot <- plot_grid(plot1 + theme(legend.position = 'none'), plot2 + theme(legend.position = 'none'), ncol = 2)
# 将图例添加到合并后的图形中
plot_grid(combined_plot, get_legend(plot1),rel_widths = c(4, 1))

方法三 patchwork::plot_layout()

使用 plot_layout() 并配合参数 guides = "collect"。此外,调整共享图例位置使用 & theme(legend.position='bottom')

library(patchwork)
plot1 + plot2 + plot_layout(guides = "collect") &
  theme(legend.position='bottom')

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

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

相关文章

SpringBoot-Hello World

SpringBootWeb快速入门 创建Springboot工程&#xff0c;并勾选web开发相关依赖定义HelloController类&#xff0c;添加方法hello&#xff0c;并添加相关注释运行测试 创建新的SpringBoot项目 几个注意的点&#xff1a; Name&#xff1a;基本上不用管&#xff0c;会根据下面的Ar…

智能电动机保护控制器的应用与分析

安科瑞 华楠 分析了智能电动机保护器相比热继电器的优点&#xff0c;指出了在我公司成功应用的原因&#xff0c;提出了应用过程中需要注意的地方。 公司新建一车间中&#xff0c;当工程设计到电动机保护这一部分时&#xff0c;设计者出于对热继电器保护性能的不满意&#xff0c…

【数据库基础】Mysql下载安装及配置

下载 下载地址&#xff1a;https://downloads.mysql.com/archives/community/ 当前最新版本为 8.0版本&#xff0c;可以在Product Version中选择指定版本&#xff0c;在Operating System中选择安装平台&#xff0c;如下 安装 MySQL安装文件分两种 .msi和.zip [外链图片转存失…

红帽8.2版本CSA题库:第八题配置 autofs自动挂载

红帽8.2版本CSA题库&#xff1a;第八题配置 autofs自动挂载 yum -y install autofs &#xff03;安装&#xff41;&#xff55;&#xff54;&#xff4f;&#xff46;&#xff53; vim /etc/auto.master &#xff03;在…

Spring Boot业务代码中使用@Transactional事务失效踩坑点总结

1.概述 接着之前我们对Spring AOP以及基于AOP实现事务控制的上文&#xff0c;今天我们来看看平时在项目业务开发中使用声明式事务Transactional的失效场景&#xff0c;并分析其失效原因&#xff0c;从而帮助开发人员尽量避免踩坑。 我们知道 Spring 声明式事务功能提供了极其…

圆满收官丨“2023年度第一季万博智云云迁移架构师训练营”结营了

“2023年度第一季万博智云云迁移架构师训练营”于今日圆满落幕。百余名来自全国各地30企业的工程师报名参加学习&#xff0c;其中60工程师在忙碌工作中抽空参与考试&#xff0c;近40名工程师通过万博智云云迁移架构师OCCE认证。 为了帮助工程师们掌握云迁移基础知识&#xff0c…

基于UDS on CAN的bootloader

UDS (Unified Diagnostic Services)&#xff1a;汽车诊断标准协议 Tester(诊断方)<--------------------------------------->ECU(汽车电控单元&#xff09; 2.UDS的硬件实现&#xff1a;CAN总线和诊断接口 3.UDS的软件实现&#xff1a;协议栈(Core)和应用程序 UDS协议…

【数字图像处理】数字图像处理中的直方图相关操作

文章目录 前言一、直方图为什么可以进行图像处理&#xff1f;二、直方图处理怎么实现&#xff1f;直方图均衡化直方图匹配-规定化局部直方图处理直方图统计量增强图像 三、OpenCv提供的直方图基础操作直方图均衡化OpenCv中直方图的表示从数据创建直方图&#xff1a;cv::calcHis…

Kafka的下载安装以及使用

一、Kafka下载 下载地址&#xff1a;https://kafka.apache.org/downloads 二、Kafka安装 因为选择下载的是 .zip 文件&#xff0c;直接跳过安装&#xff0c;一步到位。 选择在任一磁盘创建空文件夹&#xff08;不要使用中文路径&#xff09;&#xff0c;解压之后把文件夹内容…

2014-2022年阿里淘宝村省市县数据

2009-2022年阿里淘宝村-省市县数据&#xff08;原始数据汇总&#xff09; 从萌芽到扩散&#xff0c;再到大规模、集群式增长&#xff0c;生机勃勃的“淘宝村”和“淘宝镇”已成为中国农村电商发展的典范。2022年&#xff0c;在全面推动乡村振兴的进程中&#xff0c;又有一批村…

ChatGPT收录

VSCode插件-ChatGPT 多磨助手 多磨助手 (domore.run) Steamship Steamship 免费合集 免费chatGPT - Ant Design Pro 免费AI聊天室 (xyys.one)

OceanMind海睿思受邀出席2023长三角数字化大会,斩获两项数字化转型年度大奖

8月10日&#xff0c;由江苏省工业和信息化厅指导&#xff0c;长三角首席信息官联盟主办&#xff0c;江苏省企业信息化协会承办的“2023年长三角数字化转型大会”在江苏南京成功召开。 本次大会以“工业互联智造未来”为主题&#xff0c;旨在促进产业互联网的发展&#xff0c;并…

JavaScript函数声明与函数表达式

在 JavaScript 中&#xff0c;可以通过两种方式来定义函数&#xff1a;函数声明和函数表达式。 函数声明使用 function 关键字进行定义&#xff0c;并且在整个作用域中都可用。 函数声明的方式&#xff1a; function calcAge1(birthYear) {return 2037 - birthYear; } const …

制造执行系统(MES)在新能源领域的应用

制造执行系统&#xff08;MES&#xff09;在新能源领域有许多应用&#xff0c;特别是在管理、监控和优化新能源生产过程方面。新能源包括太阳能、风能、生物质能、地热能等。以下是一些MES在新能源方面的应用领域&#xff1a; 生产计划与调度&#xff1a;MES可以协助规划和调度…

FiboSearch Pro – Ajax Search for WooCommerce 商城AJAX实时搜索插件

FiboSearch Pro是最受欢迎的WooCommerce 产品搜索插件。它为您的用户提供精心设计的高级 AJAX 搜索栏&#xff0c;并提供实时搜索建议。默认情况下&#xff0c;WooCommerce 提供非常简单的搜索解决方案&#xff0c;没有实时产品搜索&#xff0c;甚至没有 SKU 搜索。FiboSearch&…

多种求组合数算法

目录 求组合数Ⅰ&#xff08;递推&#xff09;核心理论理论推导典型例题代码实现 求组合数Ⅱ&#xff08;预处理&#xff09;核心理论典型例题代码实现 求组合数Ⅲ&#xff08;Lucas定理&#xff09;核心理论Lucas定理的证明1.证明Lucas定理的第一形式2.证明Lucas定理的第二形式…

顺序表的插入,删除,修改和查找(详细解析)

目录 一.顺序表的初始化----静态分配 二.顺序表的初始化----动态分配 三.顺序表的插入 1.插入操作 2.插入操作的时间复杂度 三.顺序表的删除操作 1.顺序表的删除 2.删除操作的时间复杂度 四.顺序表的查找 1.按位查找操作&#xff1a;查找第i位置的元素 2.按位查找操作…

嘉实基金:金融科技与开源治理的双驱动,打造安全的资管业务数字系统

嘉实基金成立于1999年&#xff0c;是国内最早成立的十家基金管理公司之一&#xff0c;也是国内首家资产管理规模超过千亿的基金公司。作为一家领先的投资管理公司&#xff0c;嘉实基金也在数字化转型趋势中&#xff0c;积极推进金融科技在金融资管行业中的探索实践。为了支撑基…

7-zip 更换图标:定制你的7-Zip

7-Zip Theme Manager是一个用于管理和应用自定义主题的软件工具&#xff0c;专门为7-Zip文件压缩软件开发。它允许用户选择并应用各种主题来改变7-Zip的外观和用户界面&#xff0c;包括颜色方案、图标集、按钮样式等。通过更改主题&#xff0c;用户可以使7-Zip界面更加美观、易…

【PostgreSQL的CLOG解析】

同样还是这张图&#xff0c;之前发过shared_buffer和os cache、wal buffer和work mem的文章&#xff0c;今天的主题是图中的clog&#xff0c;即 commit log&#xff0c;PostgreSQL10之前放在数据库目录的pg_clog下面。PostgreSQL10之后修更名为xact,数据目录变更为pg_xact下面&…