R语言ggplot2拼图包patchwork安装使用

目录
  • 引言
  • 安装
  • 例子
  • 高级特性

引言

patchwork是基于ggplot2的拼图包,因为ggplot2本身没有强大的拼图语法,而一般使用的gridExtracowplot的拼ggplot2图形都存在不少问题。

我关注这个包蛮久了,现在Github上的Star数已经远超大部分的R包,但似乎还没有发布到CRAN。我的工作看似跟作图相关,写的博文大多数也如此,但实际对图形的掌控力并不咋的,所以还是要多多学习。

下面进入正题,掌握好ggplot2patchwork的基本用法,一般的图形都可以搞定了,并必要搞的很复杂。解决问题是关键,认真工作也是关键,画图看起来是,其实不是。

安装

# 需要提取安装好devtools包,
# 如果你解决安装和载入包很麻烦,可以试试pacman包,我在简书写了介绍和简单使用
devtools::install_github("thomasp85/patchwork")

导入:

p_load(patchwork)
# 或
# library(patchwork)

例子

patchwork的使用灰常简单,使用+把要拼的图加在一起就可以了。

library(ggplot2)
library(patchwork)
p1 <- ggplot(mtcars) + geom_point(aes(mpg, disp))
p2 <- ggplot(mtcars) + geom_boxplot(aes(gear, disp, group = gear))
p1 + p2

我们不用创建对象,也可以像ggplot2本身使用一样相加。

ggplot(mtcars) +
  geom_point(aes(mpg, disp)) +
  ggplot(mtcars) +
  geom_boxplot(aes(gear, disp, group = gear))

另外,可以使用布局函数plot_layout对拼接细节进行更细致地指定,像每个图的范围,图形的排列。

p1 + p2 + plot_layout(ncol = 1, heights = c(3, 1))

如果你想要在图形之间添加一些空间,可以使用plot_spacer()填充一个空白格。

p1 + plot_spacer() + p2

增加花括号的使用进行嵌套可以布置更复杂的图形:

p3 <- ggplot(mtcars) + geom_smooth(aes(disp, qsec))
p4 <- ggplot(mtcars) + geom_bar(aes(carb))
p4 + {
  p1 + {
    p2 +
      p3 +
      plot_layout(ncol = 1)
  }
} +
  plot_layout(ncol = 1)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

括号也是可以的:

p3 <- ggplot(mtcars) + geom_smooth(aes(disp, qsec))
p4 <- ggplot(mtcars) + geom_bar(aes(carb))
p4 + (
  p1 + (
    p2 +
      p3 +
      plot_layout(ncol = 1)
  )
) +
  plot_layout(ncol = 1)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

高级特性

除了将图形添加到一起,patchwork定义了一些有意思的操作符,,简化了上面的嵌套语法。-操作符将左右两边的对象放在同一个嵌套层,而不是像+号把右边放入左边的嵌套层。

p1 + p2 + p3 + plot_layout(ncol = 1)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

p1 + p2 - p3 + plot_layout(ncol = 1)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

现在p1+p2p3在同一嵌套层。

|/操作符可以用来水平和垂直布局。

(p1 | p2 | p3) /
      p4
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

子图多的时候同时修改图形比较麻烦,patchwork提供了*&用来简化代码,它们都可以将同一个操作应用到所有图形。

(p1 + (p2 + p3) + p4 + plot_layout(ncol = 1)) * theme_bw()
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

需要注意*只会应用到当前嵌套层。

p1 + (p2 + p3) + p4 + plot_layout(ncol = 1) & theme_bw()
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

&可以用递归的方式应用到所有层面。

以上就是R语言ggplot2拼图包patchwork安装使用的详细内容,更多关于R语言ggplot2拼图包patchwork的资料请关注我们其它相关文章!

(0)

相关推荐

  • R语言ggplot2之图例的设置

    引言 图例的设置包括移除图例.改变图例的位置.改变标签的顺序.改变图例的标题等. 移除图例 有时候你想移除图例,使用 guides(). library(ggplot2) p <- ggplot(PlantGrowth, aes(x=group, y=weight, fill=group)) + geom_boxplot() p + guides(fill=FALSE) 改变图例的位置 我们可以用theme(legend.position=-)将图例移到图表的上方.下方.左边和右边. p <-

  • R语言利用ggplot2绘制QQ图和箱线图详解

    目录 绘制qq图 函数介绍 例子 绘制boxplot 函数介绍 例子 利用分位点绘制箱线图 将QQ图和箱线图进行融合 函数介绍 参数介绍 注意事项 例子 绘制qq图 在ggplot2中绘制qq图需要两步,geom_qq()将绘制样本分位点,geom_qq_line()将绘制标准正态线 函数介绍 geom_qq() geom_qq( mapping = NULL, data = NULL, geom = "point", position = "identity",

  • R语言可视化ggplot2绘制24小时动态血糖图

    目录 数据格式 创建等距时间序列的方法(分钟) 画图代码 数据格式 sample=read.csv("sample.csv",header = T,stringsAsFactors = F)head(sample) 创建等距时间序列的方法(分钟) time=strptime("00:00:00","%H:%M:%S")+300*0:287 #没有填日期的时候,默认日期为今天 画图代码 #time首先要转换成 POSIXct 格式, 下面的brea

  • R语言数据可视化tidyr与ggplot2多个变量分层展示举例实现

    目录 每个变量的密度分布情况 思考 tidyr ggplot2进行绘图 在R语言普通的绘图中,使用par()参数可以在一张图上实现不同变量的子图.如果我们想要用ggplot2实现,则需要整理我们的原始数据,这通常是非常麻烦的,这时就需要用到我们的tidyr来帮助我们绘图. 可能说上面一段话不是很容易理解,下面我们来举个栗子. 每个变量的密度分布情况 y1 <- rnorm(20) y2 <- rnorm(20) dat <- data.frame(y1, y2) 现有的数据集: y1 y

  • R语言学习ggplot2绘制统计图形包全面详解

    目录 一.序 二.ggplot2是什么? 三.ggplot2能画出什么样的图? 四.组装机器 五.设计图纸 六.机器的零件 1. 零件--散点图 1) 变换颜色 2) 拟合曲线 3) 变换大小 4) 修改透明度 5) 分层 6) 改中文 2. 零件--直方图与条形图 1) 直方图 2) 润色 3) 条形图 3. 零件--饼图 4. 零件--箱线图 5. 零件--小提琴图 6. 零件打磨 7. 超级变变变 8. 其他常用零件 七.实践出真知 八.学习资源 九.参考资料 一.序 作为一枚统计专业的学

  • R语言ggplot2实现将多个照片拼接到一起

    将多个照片拼接到一起,然而电脑上没有安装ps 和 ai (拼图我暂时只想到这两个软件了) 直接使用R语言吧 思路是读取图片 使用ggplot2 显示 最后使用patchwork 拼接 代码 library(ggplot2) library(jpeg) library(ggpubr) library(patchwork) img0<-readJPEG("308/0.JPG") p0<-ggplot()+ background_image(img0)+ theme_void()

  • R语言ggplot2拼图包patchwork安装使用

    目录 引言 安装 例子 高级特性 引言 patchwork是基于ggplot2的拼图包,因为ggplot2本身没有强大的拼图语法,而一般使用的gridExtra与cowplot的拼ggplot2图形都存在不少问题. 我关注这个包蛮久了,现在Github上的Star数已经远超大部分的R包,但似乎还没有发布到CRAN.我的工作看似跟作图相关,写的博文大多数也如此,但实际对图形的掌控力并不咋的,所以还是要多多学习. 下面进入正题,掌握好ggplot2与patchwork的基本用法,一般的图形都可以搞定

  • R语言数据可视化包ggplot2画图之散点图的基本画法

    目录 前言 下面以一个简单的例子引入: 首先介绍第一类常用的图像类型:散点图 给原始数据加上分类标签: 按z列分类以不同的颜色在图中画出散点图: 按z列分类以不同的形状在图中画出散点图: 多面化(将ABC三类分开展示): 自定义颜色: 添加拟合曲线: 更换主题 : 总结 前言 ggplot2的功能很强大,并因为其出色的画图能力而闻名,下面来介绍一下它的基本画图功能,本期介绍散点图的基本画法. 在ggplot2里,所有图片由6个基本要素组成: 1. 数据(Data) 2. 层次(Layers),包

  • R语言ggplot2边框背景去除的实现

    ggplot2是R语言功能强大的可视化包,但是在作图时有很多默认设置(边框,背景等)会影响图片美观度.比如我们用ggolot2做一个简单的柱状图,就会发现有灰色背景和白色线条.对于这一问题给出几种解决方案. ggplot(mtcars)+geom_bar(aes(x=cyl)) 1.theme_classic() 应用R自带的主题,比如theme_classic(),就可以使图片美观许多,不仅背景去掉了,坐标轴也更加清晰,如下图所示: ggplot(mtcars)+geom_bar(aes(x=

  • 如何改变R语言默认存储包的路径

    怎么更改R中包的存储路径呢? 方法一 可以在R里面用如下命令 .libPaths("C:/Program Files/R/R-3.3.1/library") 方法二 在安装某一个包得时候用如下命令 install.packages("thepackage",lib="/path/to/directory/with/libraries") 补充:如何永久改变R中 .libPaths()?R语言修改 libPath包的储存路径 写在前面 我们有时候新

  • 详解R语言图像处理EBImage包

    目录 什么是EBImage 1. 图像读取与保存 2.色彩管理 3.图像处理 4.空间变换 5.形态运算 6.图像分割 本文摘自<Keras深度学习:入门.实战及进阶>第四章部分章节. 什么是EBImage EBImage是R的一个扩展包,提供了用于读取.写入.处理和分析图像的通用功能,非常容易上手.EBImage包在Bioconductor中,通过以下命令进行安装. install.packages("BiocManager") BiocManager::install(

  • R语言学习VennDiagram包绘制韦恩图示例

    目录 引言 一 需要安装和导入的包 二 使用函数及参数 三 知道各个数据集的个数以及重叠(交叉)的个数 2.1 两个已知数据集的韦恩图 2.2 三个已知数据集的韦恩图 四 根据数据集合绘制韦恩图 4.1 四个数据集合 4.2 五个数据集合 引言 本版块会持续分享一些常用的结果展示的图形. 在得到数据之后,我们经常会用到维恩图来展示各个数据集之间的重叠关系.本文简单的介绍R语言中的VennDiagram包绘制数据集的维恩图. 一 需要安装和导入的包 install.packages("VennDi

  • R语言使用cgdsr包获取TCGA数据示例详解

    目录 TCGA数据源 TCGA数据库探索工具 查看任意数据集的样本列表方式 选定数据形式及样本列表后获取感兴趣基因的信息,下载mRNA数据 选定样本列表获取临床信息 综合性获取 下载mRNA数据 获取病例列表的临床数据 从cBioPortal下载点突变信息 从cBioPortal下载拷贝数变异数据 把拷贝数及点突变信息结合画热图 TCGA数据源 众所周知,TCGA数据库是目前最综合全面的癌症病人相关组学数据库,包括的测序数据有: DNA Sequencing miRNA Sequencing P

  • R语言利用caret包比较ROC曲线的操作

    说明 我们之前探讨了多种算法,每种算法都有优缺点,因而当我们针对具体问题去判断选择那种算法时,必须对不同的预测模型进行重做评估. 为了简化这个过程,我们使用caret包来生成并比较不同的模型与性能. 操作 加载对应的包与将训练控制算法设置为10折交叉验证,重复次数为3: library(ROCR) library(e1071) library("pROC") library(caret) library("pROC") control = trainControl(

  • R语言ggplot2设置图例(legend)的操作大全

    目录 基本箱线图(带有图例) 移除图例 修改图例的内容 颠倒图例的顺序 隐藏图例标题 修改图例中的标签 修改data.frame的factor 修改标题和标签的显示 修改图例的框架 设置图例的位置 隐藏斜线 总结 本文在 http://www.cookbook-r.com/Graphs/Scatterplots_(ggplot2)/ 的基础上加入了自己的理解 图例用来解释图中的各种含义,比如颜色,形状,大小等等, 在ggplot2中aes中的参数(x, y 除外)基本都会生成图例来解释图形, 比

随机推荐