R语言 在一个窗口中绘制多个格子图
在这篇文章中,我们将讨论如何在一个窗口中绘制多个格子图。
使用的模块
- lattice: lattice包使用网格包来提供更好的数据关系。它是实现Trellis图形(显示变量之间关系的图形)的一个附加包。
- gridExtra: 这个包提供了多个函数,可以定义各种网格,用来安排多个图。
这两个包都必须明确地安装在系统上。 首先,我们需要设置一个数据框架,其中包含要在x轴和y轴上绘制的数据,还有另一列可以用来区分格子。对于这一列的每一个独特的值,将产生一个不同的格子图。
单个格子图是通过xyplot()函数创建的,这个函数产生一个散点图。对于每一行,一个特定的条件决定了它应该被放在哪个格子里。
语法
xyplot(formula, data, ..)
参数
- formula。指定特定的条件
- data:要绘制的数据框架
一旦所有的格子图都准备好了,就应该把它们安排在一个窗口中,为此我们使用了gridExtra包的arrange()函数。
R语言中的 arrange() 函数用于借助传递给函数的列名来重新排列表格的行数。
语法: arrange(x, expr)
参数:
x: 要重新排序的数据集
expr: 带有列名的逻辑表达式
例子
library(lattice)
library(gridExtra)
df<-data.frame(x = rnorm(100),
y = rnorm(100),
z = c(rep("A", 35),
rep("B", 40),
rep("C", 25))
)
df
lat1 <- xyplot(y~x,df[dfz == 'A',])
lat2 <- xyplot(y~x,df[dfz == 'B',])
lat3 <- xyplot(y~x,df[df$z == 'C',])
grid.arrange(lat1, lat2, lat3, ncol = 3)
输出