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(1, 1.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)
参考资料
https://wilkelab.org/cowplot/index.html
推荐: 可以保存以下照片,在b站扫该二维码,或者b站搜索【庄闪闪
】观看Rmarkdown系列的视频教程。Rmarkdown视频新增两节视频(写轮眼幻灯片制作)需要视频内的文档,可在公众号回复【rmarkdown
】
R沟通|Rmarkdown教程(4)
R沟通|Rmarkdown教程(3)
R沟通|Rmarkdown教程(2)