有时候,我们想把画的几幅图拼接在一起,在R中,cowplot包提供了将图片拼在一起的方法。
cowplot最佳的适应对象是ggplot2包画的图,但是也可以画其他命令画的图,今天我们先将ggplot2画的图拼在一起。
0、安装cowplot包
install.packages('cowplot')
调用cowplot包
library(cowplot)
1、准备4幅图
先用ggplot2画4幅图:A、B、C、D
library(ggplot2)
A<- ggplot(mtcars,aes(mpg, hp)) +
geom_point()
A
B<- ggplot(mtcars,aes(mpg)) + geom_histogram()
B
C<- ggplot(mtcars,aes(mpg)) + geom_dotplot()
C
D<- ggplot(mtcars,aes(y = mpg)) +
geom_boxplot(aes(fill=gear))
D
2、用plot_grid命令将这4附图拼在一起
plot_grid(A,B,C,D)
3、对齐方式
对齐的参数是align,水平对齐h(horizontally )、垂直对齐v(vertically ),同时水平和垂直对齐hv
plot_grid(A,B,C,D,align = 'h')
plot_grid(A,B,C,D,align = 'v')
plot_grid(A,B,C,D,align = 'hv')
4、指定行列数
比如,我们想把4个图片画成1行,那就将nrow设置成1
plot_grid(A,B,C,D,nrow = 1)
我们看到,第四幅图与前三幅图没有完全对齐,我们使用align='h'来设置水平对齐。
plot_grid(A,B,C,D,nrow = 1,align = 'h')
我们想把4个图片画成1列,那就将ncol设置成1
plot_grid(A,B,C,D,ncol = 1)
我们看到图片左右两边没有对齐,我们添加align='v',来设置垂直方向对齐。
plot_grid(A,B,C,D,ncol = 1,align = 'v')
5、设置图片的相对高度与相对宽度
rel_heights和rel_widths,rel的意思是relative,设置的是列或行的相对高度和相对宽度
相对高度:第1行的高度是第2行的2倍
plot_grid(A,B,C,D,rel_heights = c(2,1))
相对宽度:第1列的宽度是第2列的2倍
plot_grid(A,B,C,D,rel_widths = c(2,1))
6、添加A、B、C、D4个标签
plot_grid(A,B,C,D,
labels = c('A','B','C','D'))
设置标签的颜色(label_colour)、位置(label_x、label_y)、字体(label_fontface、label_fontfamily)、大小(label_size)
plot_grid(A,B,C,D,
labels = c('A','B','C','D'),
label_colour = 'red',
label_x = 0.01,
label_y = 1.02,
label_fontface = 1,
label_size = 16)
label_fontface主要设置加粗、倾斜这些,用数字1、2、3、4---这些就行,
label_fontfamily主要设置字体的类型,比如黑体等。
当然还可以使用hjust和vjust来水平和竖直调整标签的相对位置,比如hjust=-0.5
7、设置每一个图片的大小
使用scale来设置每一个图片的大小,不是整张图片的大小
plot_grid(A,B,C,D,scale = c(0.7))
8、设置边距
边距是设置整个图片的边距,边距设置的顺序是上、右、下、左
plot_grid(A,B,C,D)+
theme(plot.margin = unit(c(1,2,3,4), "cm"))
9、使用list把4个图片捆在一起
有时候,你需要把所有的图片都放在一起,然后做出图,那就使用list
再把对象赋值给plotlist参数
pic4=list(A,B,C,D)
plot_grid(plotlist = pic4)
10、调节图片之间的距离
下次讲------