在写论文或者报告的时候,肯定会不可避免的遇到编辑多图成一个图的情况。其实方法可以有很多,比方说最笨的办法用PPT自己手动拖移,再高级一点的用PS软件。但是都很繁琐(笔者惭愧的表示这些方法都用过)。仔细想想,好不容易用ggplot2画出了至少看上去高上大的图,到头来还是要靠PPT排版,是不是心里会有些不甘心呢。如果和我一样选择是的小伙伴,那请继续往下看文章,肯定可以给你带来不一样的体验。
本文使用到的包有gridExtra cowplotggpubr
通过阅读本文你可以学会以下技能,把所组不一样的图,表,文字融合到一个页面中间。

1. 合并多图

1.1 制作独立的图

在此也是便于重复,使用程序自带的数据ToothGrowthmtcars

data("ToothGrowth")
head(ToothGrowth)
data("mtcars")
mtcars$name <- rownames(mtcars)
mtcars$cyl <- as.factor(mtcars$cyl)

画箱图,蜂巢图,棒状图,点图

bxp <- ggboxplot(ToothGrowth, x = "dose", y = "len",color = "dose", palette = "jco")
bxp

dp <- ggdotplot(ToothGrowth, x = "dose", y = "len",color = "dose", palette = "jco", binwidth = 1)
dp

bp <- ggbarplot(mtcars, x = "name", y = "mpg",fill = "cyl",               # change fill color by cylcolor = "white",            # Set bar border colors to whitepalette = "jco",            # jco journal color palett. see ?ggparsort.val = "asc",           # Sort the value in ascending ordersort.by.groups = TRUE,      # Sort inside each groupx.text.angle = 90           # Rotate vertically x axis texts
)
bp + font("x.text", size = 8)

sp <- ggscatter(mtcars, x = "wt", y = "mpg",add = "reg.line",               # Add regression lineconf.int = TRUE,                # Add confidence intervalcolor = "cyl", palette = "jco", # Color by groups "cyl"shape = "cyl"                   # Change point shape by groups "cyl"
)+stat_cor(aes(color = cyl), label.x = 3)       # Add correlation coefficient
sp

最后用ggarrange()来整合这四张独立的图

ggarrange(bxp, dp, bp, sp + rremove("x.text"), labels = c("A", "B", "C","D"),ncol = 2, nrow = 2)


用的缩小图,导致最后一张图的注释都凑到一起去了,原图没有问题,在此可以不用在意。

还可以添加文字对图进行注释

figure <- ggarrange(sp, bp + font("x.text", size = 10),ncol = 1, nrow = 2)
annotate_figure(figure,top = text_grob("Visualizing mpg", color = "red", face = "bold", size = 14),bottom = text_grob("Data source: \n mtcars data set", color = "blue",hjust = 1, x = 1, face = "italic", size = 10),left = text_grob("use ggpubr", color = "green", rot = 90),right = ":-)!:-)!:-)!:-)!:-)!",fig.lab = "Figure 1", fig.lab.face = "bold")

R语言 ggplot2 多图排列 Part(1)相关推荐

  1. R语言ggplot2可视化图中添加希腊字母实战

    R语言ggplot2可视化图中添加希腊字母实战 目录 R语言ggplot2可视化图中添加希腊字母实战 #ggplot2可视化图中添加希腊字母1

  2. r语言ggplot2误差棒图快速指南

    给直方图和线图添加误差棒 准备数据 这里使用ToothGrowth 数据集. library(ggplot2) df <- ToothGrowth df$dose <- as.factor ...

  3. R语言ggplot2 | 多图排版

    文章目录 定义主题格式 完成多图拼凑 使用`ggarrange函数`中`align参数`完成上下对齐 使用`annotate_figure函数`添加批注    通常绘制了多张图,但是不清楚如何排版,或 ...

  4. R语言ggplot2可视化箱图(boxplot)并使用ggsignif添加分组显著性(significance)标签

    R语言ggplot2可视化箱图(boxplot)并使用ggsignif添加分组显著性(significance)标签 目录 R语言ggplot2可视化箱图(boxplot)并使用ggsignif添加显 ...

  5. R语言ggplot2可视化密度图(density plot)、改变密度图下的填充色实战

    R语言ggplot2可视化密度图(density plot).改变密度图下的填充色实战 目录 R语言ggplot2可视化密度图(density plot).改变密度图下的填充色实战

  6. R语言ggplot2可视化分组的重叠图实战:grouped overlay plot

    R语言ggplot2可视化分组的重叠图实战:grouped overlay plot 目录 R语言ggplot2可视化分组的重叠图实战:grouped overlay plot #仿真数据

  7. R语言ggplot2可视化分面图使用facet_wrap函数和facet_grid函数实战

    R语言ggplot2可视化分面图使用facet_wrap函数和facet_grid函数实战 目录 R语言ggplot2可视化分面图使用facet_wrap函数和facet_grid函数实战

  8. R语言ggplot2可视化:可视化华夫饼图(Waffle Chart) 、华夫饼图可以直观地显示完成度(百分比)或者部分占整体的比例、华夫饼图适合于同类型指标的比较(Waffle Chart)

    R语言ggplot2可视化:可视化华夫饼图(Waffle Chart) .华夫饼图可以直观地显示完成度(百分比)或者部分占整体的比例.华夫饼图适合于同类型指标的比较(Waffle Chart) 目录

  9. R语言ggplot2可视化树状图、层次聚类系统树图、树状图根据给定的距离度量将相似点分组在一起、并根据点的相似性将它们组织成树状图链接起来(Hierarchical Dendrogram)

    R语言ggplot2可视化树状图.层次聚类系统树图.树状图根据给定的距离度量将相似点分组在一起.并根据点的相似性将它们组织成树状图链接起来(Hierarchical Dendrogram) 目录

最新文章

  1. MySQL中定义fk语句_MySQL基础篇/第3篇:MySQL基本操作语句.md · qwqoo/MySQL-Review - Gitee.com...
  2. 解决:Reading table information for completion of table and column names
  3. ResDepot CRC码
  4. 计算机基础中怎么评价,浅谈职校计算机基础教学中的教学评价
  5. [Python人工智能] 三十.Keras深度学习构建CNN识别阿拉伯手写文字图像
  6. Java的Excel导出方案介绍
  7. TensorFlow构建二维数据拟合模型(3)
  8. php读写分离是什么意思,php mysql读写分离
  9. HDU 5183 Negative and Positive (NP)
  10. Python编码详解
  11. 使用正则表达式,取得点击次数,函数抽离
  12. Android MVP+Retrofit(封装)+RxJava实例
  13. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-1.数据信息安全--微信授权一键登录功能介绍...
  14. CentOS 7 systemd添加自定义系统服务
  15. phpstorm+xdebug远程调试
  16. yolov5模型转换(pt=>onnx=>rknn)和板端验证测试
  17. 如何用div实现炫酷3D球体?
  18. Android 调用.so包时报错:UnsatisfiedLinkError: No implementation found for XXX 时的解决办法
  19. 计算机logo在线设计,手机上在线制作免费logo图标的APP—Logo Foundry
  20. python2.7安装pyqt5版本,py3

热门文章

  1. 量化选股——基于多因子模型的量化策略(第1部分—因子测算策略构建)
  2. 仿射变换和透视变换矩阵的参数含义与区别
  3. 近期matlab激活,使用文件安装密钥安装产品
  4. 从概念到底层技术,一文看懂区块链架构设计(附知识图谱)
  5. 【Java校招面试】实战面经(一)
  6. 柠檬桉叶油和deet_【科普】99%的曹王人都不知道!驱蚊花露水是农药!科普一下儿童使用驱蚊剂的安全性...
  7. 浏览器内核引擎分类归纳
  8. 快捷键Win+E默认启动Directory Opus的设置方法
  9. Zabbix-3.2.3实现微信(WeChat)告警
  10. 2位专家耗时2年打造,西瓜书机器学习公式详解,都在这里了!(文末留言赠书)...