R 如何获得图纸接受版面或版面?

R 如何获得图纸接受版面或版面?,r,plot,time-series,R,Plot,Time Series,我尝试将par与plot.ts一起使用,但没有成功。检查我发现的代码,plot.ts在内部使用了已存在的par,这可能会导致冲突。但是,layout也不起作用。这里是两种方法的代码,一个接一个地绘制图,但不是两种方法并排绘制: ## using `par` op <- par(mfrow=c(1, 2)) plot(stl(co2, s.window=21), plot.type="single") plot(stl(log(co2), s.window=21), plot.type="s

我尝试将
par
plot.ts
一起使用,但没有成功。检查我发现的代码,
plot.ts
在内部使用了已存在的
par
,这可能会导致冲突。但是,
layout
也不起作用。这里是两种方法的代码,一个接一个地绘制图,但不是两种方法并排绘制:

## using `par`
op <- par(mfrow=c(1, 2))
plot(stl(co2, s.window=21), plot.type="single")
plot(stl(log(co2), s.window=21), plot.type="single")
par(op)

## using `layout`
op <- par(no.readonly=TRUE)
layout(matrix(1:2, 1))
par(mfrow=c(1, 2))
plot(stl(co2, s.window=21), plot.type="single")
plot(stl(log(co2), s.window=21), plot.type="single")
par(op)
##使用'par`

op您应该能够通过稍微修改stats包中的
plot.stl
函数来实现这一点

只需注释掉第15:19行

#15:  if (length(set.pars)) {
#16:    oldpar <- do.call("par", as.list(names(set.pars)))
#17:    on.exit(par(oldpar), add = TRUE)
#18:    do.call("par", set.pars)
#19:  }

如果您对ggplot持开放态度,则不确定,但有一个名为patchwork的pkg,它有一个很好的界面来处理ggplot,并有一个很好的语法来安排plot。您只需编写P1+P2就可以并排排列两个绘图。@Mohitharma我说的是
stats::plot.ts
函数,谢谢。实际上,您正在调用
plot.stl
,它也会在内部修改
par
设置。我想你得利用黑客。
layout(matrix(1:8, ncol=2, byrow=FALSE))
layout.show(8)
op <- par(mar = c(0, 4, 0, 4), oma = c(2, 0, 2, 0), tck = -0.02)
plot(stl(co2, s.window=21), plot.type="single")
plot(stl(log(co2), s.window=21), plot.type="single")
par(op)