在R语言:填色等值线图及其色标(color bar)设置中我们介绍了filled.contour函数的用法,它可以很方便的绘制带色标的填色等值线图。但是我们平时可能更多的需要将多个填色图放在同一张图上(如下图所示),这种图该如何绘制?
相比R语言:填色等值线图及其色标(color bar)设置介绍的图形,这里的难点主要有两个,一是怎样进行分面,二是怎样在地图上绘制陆地轮廓,下面我们将依次解决这两个难题。
一、一页多图
绘图时进行分面操作常用的函数有par函数和layout函数,其中使用par函数分面主要通过调整mfrow参数实现,例如par(mfrow= c(2, 3))即是把当前绘图区域等分为2行3列,其缺点是只能对页面进行等份,而我们绘图的页面布局如下,显然每个绘制区域并不相同,par(mfrow)方法并不适用。
layout函数则可以处理这类问题,简单介绍一下layout函数:
layout(mat,
widths =rep.int(1, ncol(mat)),
heights = rep.int(1, nrow(mat)),
respect = FALSE)
其中参数mat是一个由整数1-N构成的矩阵,这里假定我们要在同一个页面上绘制N个图形,数字1-N即是这N个图形绘制的顺序,而数字1-N在矩阵中的相对位置则表示图像在页面上出现的相对位置。在这里我们先绘制填色图,然后绘制色标,最后绘制标题,页面布局矩阵如下:
参数widths和heights是两个向量分别表示矩阵中每一列的宽度和每一行的高度,这里如果widths和heights给出的值是数字的话,则表示相对比例