前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言统计与绘图:给组合图形添加ABCD小标签

R语言统计与绘图:给组合图形添加ABCD小标签

作者头像
DataCharm
发布2021-02-22 14:41:48
5.8K0
发布2021-02-22 14:41:48
举报

前面我们学习了ggplot2中组合图形的绘制,在科研论文中,组合图形每张子图通常需要加上ABCD等标签,如下图所示。

这种ABCD标签既可以在PS或者AI中添加,也可以在R中直接添加。

今天我们来学习组合图形中怎么添加ABCD标签。

组合图形的标签添加可以使用ggpubr包的ggarrange()函数或annotate_figure()函数。

1. 安装和加载包

代码语言:javascript
复制
install.packages("ggpubr") # 安装包
install.packages("ggplot2") # 安装包
library(ggpubr) # 加载包
library(ggplot2) # 加载包

2. 绘制图形

先绘制好需要的图形,在这里为求方便,我每张小图都是一样的。

代码语言:javascript
复制
p1 <- ggplot(mtcars, aes(x=mpg, y=wt)) + geom_point()
p2 <- ggplot(mtcars, aes(x=mpg, y=wt)) + geom_point()
p3 <- ggplot(mtcars, aes(x=mpg, y=wt)) + geom_point()
p4 <- ggplot(mtcars, aes(x=mpg, y=wt)) + geom_point()

3. ggarrange()函数添加标签

在ggarrange()函数中,使用labels参数给每张小图添加标签。

大多数论文都是将标签放在左上角。

代码语言:javascript
复制
ggarrange(p1, p2, p3, p4, ncol = 2, nrow = 2,
          labels = c("A","B","C","D"), # 添加标签
          font.label = list(size = 14, face = "bold")) # 设置标签字体样式

如有需要,可以设置label.x、label.y的数值来调整标签位置。

代码语言:javascript
复制
ggarrange(p1, p2, p3, p4, ncol = 2, nrow = 2,
          labels = c("A","B","C","D"), # 添加标签
          label.x = 0, label.y = 0.1, # 调整标签位置
          font.label = list(size = 14, face = "bold")) # 设置标签字体样式

4. annotate_figure()函数添加标签

除了添加ABCD标签外,还可以使用annotate_figure()函数添加更复杂的注释。

代码语言:javascript
复制
figure <- ggarrange(p1, p2, p3, p4, ncol = 2, nrow = 2)
annotate_figure(figure,
                top = text_grob("给组合图形添加标签", color = "red", face = "bold", size = 14),
                bottom = text_grob("公众号: R语言统计与绘图", color = "black",
                                   hjust = 1, x = 1, face = "italic", size = 10),
                left = text_grob("使用ggpubr组合图片", color = "red", rot = 90),
                fig.lab = "Figure 1", fig.lab.face = "bold")

5. ggarrange()函数

代码语言:javascript
复制
ggarrange(..., plotlist = NULL, ncol = NULL, nrow = NULL,
  labels = NULL, label.x = 0, label.y = 1,
  hjust = -0.5, vjust = 1.5,
  font.label = list(size = 14, color = "black", face = "bold", family = NULL),
  align = c("none", "h", "v", "hv"), widths = 1, heights = 1,
  legend = NULL, common.legend = FALSE, legend.grob = NULL)

## 部分参数解释
... # 要组图的ggplot2对象列表
plotlist # 要显示的绘图列表
ncol、nrow # 图形组合的列数和行数
labels # 要添加到图形中的标签列表,可以设置lable="AUTO"或"auto"自动生成大写标签或小写标签
label.x、label.y # 相对于子图,图标签x、y位置的值或向量,x默认为0,y默认为1,也就是左上角;
hjust、vjust # 调整每个标签的水平或垂直位置,单个值应用于所有标签,值向量应用于每个标签。
font.label # 自定义标签的参数列表,允许值为size、face、color和family. 
# 用法:font.label = list(size = 14, face = "bold", color ="red").
align # 子图的对齐方式,有"h"(水平对齐)、"v"(垂直对齐)、"none"(默认)、"hv"(双向对齐)。
widths # 相对列宽度的数值向量;如widths = c(2, 1)表示第1列宽度是第2列宽度的两倍
heights # 同上
legend # 指定图例位置的字符;允许值为"top", "bottom", "left", "right", "none"。
# legend = "none"表示移除图例
common.legend # 逻辑词,是否子图使用同一图例。

6. annotate_figure()函数

代码语言:javascript
复制
annotate_figure(p, top = NULL, bottom = NULL, left = NULL, right = NULL,
  fig.lab = NULL, fig.lab.pos = c("top.left", "top", "top.right", "bottom.left", "bottom","bottom.right"),
  fig.lab.size, fig.lab.face)
  
## 部分参数解释
p # ggplot2对象
top、bottom、left、right # 标签放置位置
fig.lab # 标签文本
fig.lab.pos #标签文本位置
fig.lab.size # 标签文本大小
fig.lab.face # 标签文本样式;有"plain", "bold", "italic", "bold.italic".
参考资料
  1. R数据可视化手册。
  2. annotate_figure()函数帮助文件;
  3. ggarrange()函数帮助文件。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DataCharm 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 安装和加载包
  • 2. 绘制图形
  • 3. ggarrange()函数添加标签
  • 4. annotate_figure()函数添加标签
  • 5. ggarrange()函数
  • 6. annotate_figure()函数
    • 参考资料
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档