R语言可视化——图片拼接排布(一)

0引言

在之前使用R语言拼接图片,一般的图形用的是par函数,ggplot2的拼接使用的是gridExtra包里的grid.arrange函数。不过这两种方式没办法个性化的去拼接排布图形,本篇将总结R语言中常用的图形拼接函数和扩展包。初步介绍R语言的画布拼接函数包。

1、customLayout包

1.1 主要函数介绍

函数功能介绍
lay_new创建画布
lay_show查看画布样式
lay_bind_col按列拼接画布效果类似于cbind
lay_bind_row按行拼接画布效果类似于rbind
lay_split_field嵌套两个画布画布
lay_set准备画布类似于par

下面具体讲解上述表格内函数的使用方式,并使用上面函数构建实用简介的图片。

1.2主要函数讲解

1.2.1 lay_new

> lay_new
function (mat, widths = NULL, heights = NULL) 

参数讲解:

  • mat:输入矩阵用于切分标号子图片
  • widths:设置宽的比例,长度为n的向量
  • heights:设置长的比例,长度为n的向量
    代码示例:
# 创建一个4x2的画布数据
lay1 <- lay_new( 
  mat = matrix(1:8, ncol = 2), 
  widths = c(2,1),             
  heights = c(1,1,1,1)             
)
> lay
CustomLayout object:
  Specification:
         2    1
     1   1    5
     1   2    6
     1   3    7
     1   4    8
  To print the layout on your graphics device plese use:
  lay(x)

1.2.2 lay_show

> lay_show
function (layout) 

这个函数只有一个参数,就是上面第一部分创建的画布数据。输出画布的分布及数字。运行下面代码会得到画布。

lay_show(lay) 

在这里插入图片描述

1.2.3 lay_bind_col

lay_bind_col
function (x, y, widths = c(1, 1), addmax = TRUE) 

lay_bind_row的效果效果类似这里主要讲解lay_bind_col
参数讲解:

  • x:左边的画布
  • y:右边的画布
  • width:设置拼接比例
  • addmax:没用过不知
    实际案例:一比一拼接2.3.2中的画布。
lay1 <- lay_bind_col(lay, lay, widths = c(1, 1))
lay_show(lay1) 

在这里插入图片描述

1.2.4 lay_split_field

> lay_split_field
function (lay, newlay, field) 

参数讲解:

  • y:原始画布
  • wlay:需要嵌套的画布
  • field:需要替换lay中的那个区域
    例子:将2.3.2中的画布嵌套在自己的第4个区域上。
lay2 <- lay_split_field(lay, lay, field = 4) 
lay_show(lay2) 

在这里插入图片描述

1.3案例一

第一个案例是来子时间序列里的图形,时序图、acf、pacf,残差直方图等。
下面是具体代码和效果:

# 案例一
# 构造时间序列数据
n = 50
TS <- ts(rnorm(n, 2, 4))

第一个例子:

# 准备画布
lay1 <- lay_new( 
  mat = matrix(1:2, ncol = 1),              
  heights = c(1,1)             
)
lay2 <- lay_new( 
  mat = matrix(1:2, ncol = 2),              
  widths = c(1,1)             
)
lay3 <- lay_split_field(lay1, lay2, field = 2) 
# 开始画图
lay_show(lay3)
acf(TS)
pacf(TS)

在这里插入图片描述
第二个例子:

# 准备画布
lay1 <- lay_new( 
  mat = matrix(1:3, ncol = 1),              
  heights = c(1,1,1)             
)
lay2 <- lay_new( 
  mat = matrix(1:2, ncol = 2),              
  widths = c(1,1)             
)
lay3 <- lay_split_field(lay2, lay1, field = 2) 
# 开始画图
lay_show(lay3)
hist(TS)
plot(TS)
acf(TS)
pacf(TS)

在这里插入图片描述

1.4案例二

# 案例二:回归检验图
x <- 1:50
y <- x + rnorm(50,5,5)
fit <- lm(y ~ x)
lay_show(lay3)  # 该画板实用的是案例一的例子2
plot(fit)

在这里插入图片描述

2、总结

更多的R语言画布拼接的技巧会在下期持续更新,欢迎关注。希望大家能够设计出好的画布拼接,更好更高效的展示数据。

  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

统计学小王子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值