查看原文
其他

cowplot包,ggplot2图形排版R包

The following article is from R语言统计与绘图 Author 段湘杰

点击下方公众号,回复资料分享,收获惊喜


今天来学习一个ggplot2图形排版R包——cowplot包,这个R包也很好用。

1. 安装和加载R包

可以直接从CRAN上安装。

install.packages("cowplot")
library(cowplot)

2. 绘制示例图形

可以绘制几个示例图形。

library(ggplot2)
p1 <- ggplot(mtcars, aes(mpg, wt)) + 
  geom_point(size = 3.5) + 
  theme_bw(base_size = 23) +
  ggtitle('plot 1')
p2 <- ggplot(mtcars, aes(hp, wt, colour = mpg)) +
  geom_point(size = 3.5) + 
  theme_bw(base_size = 23) +
  ggtitle('plot 2')
p3 <- ggplot(mtcars, aes(mpg, disp, group = gear)) + 
  geom_boxplot() + 
  theme_bw(base_size = 23) +
  ggtitle('plot 3')
p4 <- ggplot(mtcars, aes(gear)) + 
  geom_bar() + 
  facet_wrap(~ cyl) + 
  theme_bw(base_size = 23) +
  ggtitle('plot 4')
p1
p2
p3
p4

3. 简单排版图形

使用plot_grid()排版图形。

plot_grid(p1, p2, p3, p4)

不加任何参数调整,排版的图形其实是比较粗糙的,比如坐标轴不对齐等。

4. 调整排版对齐细节

可以使用ncol参数指定排版的图形列数,使用nrow参数指定排版的图形行数。

可以使用align、axis参数调整图形的对齐细节。

对于两张图形的组合排版。

plot_grid(p1, p3, ncol = 1, align="v")

以上可以既对齐轴标签也可以对齐轴线。

对于多张图形的排版,可以对齐左右两边轴线,在axis参数中指定lr即可。

plot_grid(p1, p2, p3, p4, ncol = 2
          align="v", axis = "lr")

axis参数是按坐标轴线去进行对齐,可选参数包括c("none", "l", "r", "t", "b", "lr", "tb", "tblr")

也可以只对齐左边的轴线。

plot_grid(p1, p2, p3, p4, ncol = 2
          align="v", axis = "l")

5. 调整排版图形比例

可以使用rel_widths、rel_heights参数调整图形排版的长宽比例。

plot_grid(p1, p2, p3, p4, align="v", axis = "l"
          rel_widths = c(11.5))

6. 添加排版图形标签

可以使用labels参数设置是否添加图形标签;

使用label_size、label_fontfamily、label_fontface、label_colour等参数调整图形标签的美学参数。

plot_grid(p1, p2, p3, p4, ncol = 2
          align="v", axis = "l",
          labels="AUTO"# auto小写则标签小写
          label_size = 23# 标签大小
          label_fontface = "bold"# 标签字体样式
          label_colour = "red" # 标签字体颜色
)

可以使用label_x、label_y、hjust、vjust调整图形的位置参数。

plot_grid(p1, p2, p3, p4, ncol = 2
          align="hv", axis = "lr",
          labels="AUTO",
          label_size = 23,
          label_fontface = "bold"
          label_colour = "red",
          label_x = 0.05# 默认为0
          label_y = 0.95 # 默认为1
)

7. 调整图形嵌套

可以将plot_grid()函数进行嵌套,然后将组合图形嵌到另外一个图形中。

bottom_row <- plot_grid(p1, p3, 
                        labels = c('B''C'), label_size = 23)
plot_grid(p4, bottom_row, ncol = 1
          labels = c('A'''), 
          label_size = 23)

同样也可以对齐坐标轴。

plots <- align_plots(p4, p1, align = 'v', axis = 'l')
bottom_row <- plot_grid(plots[[2]], p2, 
                        labels = c('B''C'), label_size = 23)
plot_grid(plots[[1]], bottom_row, 
          labels = c('A'''), label_size = 23, ncol = 1)

参考资料

  1. https://wilkelab.org/cowplot/index.html

推荐: 可以保存以下照片,在b站扫该二维码,或者b站搜索【庄闪闪】观看Rmarkdown系列的视频教程。Rmarkdown视频新增两节视频(写轮眼幻灯片制作)需要视频内的文档,可在公众号回复【rmarkdown


R沟通|Rmarkdown教程(4)


R沟通|Rmarkdown教程(3)


R沟通|Rmarkdown教程(2)


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存