分享

R高级|利用cowplot包拼接图片(1)基本操作

 terminator_523 2019-12-02

        有时候,我们想把画的几幅图拼接在一起,在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_heightsrel_widthsrel的意思是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_xlabel_y)、字体label_fontfacelabel_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主要设置字体的类型,比如黑体等。

当然还可以使用hjustvjust来水平和竖直调整标签相对位置,比如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、调节图片之间的距离

        下次讲------

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约