如何将多个点阵图绘制到单个点阵图上,其中使用lapply函数生成图?
以下是我使用内置mtcars
数据集到目前为止所尝试的内容的演示。
require(lattice)
response <- c("cyl","disp","hp","drat")
par(mfrow=c(2,2))
lapply(response, function(variable) {
print(xyplot(mtcars$mpg ~ mtcars[variable]))
})
这产生了所需的图。然而,它似乎忽略了par(mfrow=c(2,2))
指令并分别绘制每个图。
答案 0 :(得分:3)
如果您确实不想使用晶格的内置构面或视口选项,则可以使用以下内容复制par(mfrow)
的行为,
require(lattice)
response <- c("cyl","disp","hp","drat")
# save all plots in a list
pl <- lapply(response, function(variable) {
xyplot(mtcars$mpg ~ mtcars[variable])
})
library(gridExtra)
# arrange them in a 2x2 grid
do.call(grid.arrange, c(pl, nrow=2))
答案 1 :(得分:1)
您的示例不是lattice
的使用方式(grid
更合适)。
以下是lattice
解决方案:
xyplot(mpg ~ cyl+disp+hp+drat,
data=mtcars,
groups=cyl+disp+hp+drat,
scales=list(relation="free"),
col="blue"
)
答案 2 :(得分:0)
this page上的多重绘图函数是我多次使用以在一个页面上获取多个绘图对象的东西。