使用 layout() 进行绘图的 R 代码在逐行执行时有效,但在包含在函数中时无效
R code for plotting using layout() works when executed line by line but not when wrapped up in a function
我正在使用 xts
包。
library(xts)
以下工作完全正常:
mydata = xts(rnorm(200), order.by = Sys.Date() - 1:200)
layout(matrix(c(1,1,2,3), 2, 2, byrow = TRUE),
widths=c(1,1), heights=c(1,2))
plot(mydata, main = 'mydata Time Series')
acf(mydata, main = 'mydata acf', lag = 10)
pacf(mydata, main = 'mydata pacf', lag = 10)
但是当我使用完全相同的东西作为函数时,绘图显示不佳
mydata = xts(rnorm(200), order.by = Sys.Date() - 1:200)
return_plot <- function(mydata, lag = 10){
layout(matrix(c(1,1,2,3), 2, 2, byrow = TRUE),
widths=c(1,1), heights=c(1,2))
plot(mydata, main = 'mydata Time Series')
acf(mydata, main = 'mydata acf', lag = lag )
pacf(mydata, main = 'mydata pacf', lag = lag)
}
return_plot(mydata)
知道为什么会这样吗?
在你的函数中使用 print(plot(mydata, main = 'mydata Time Series'))
。
我正在使用 xts
包。
library(xts)
以下工作完全正常:
mydata = xts(rnorm(200), order.by = Sys.Date() - 1:200)
layout(matrix(c(1,1,2,3), 2, 2, byrow = TRUE),
widths=c(1,1), heights=c(1,2))
plot(mydata, main = 'mydata Time Series')
acf(mydata, main = 'mydata acf', lag = 10)
pacf(mydata, main = 'mydata pacf', lag = 10)
但是当我使用完全相同的东西作为函数时,绘图显示不佳
mydata = xts(rnorm(200), order.by = Sys.Date() - 1:200)
return_plot <- function(mydata, lag = 10){
layout(matrix(c(1,1,2,3), 2, 2, byrow = TRUE),
widths=c(1,1), heights=c(1,2))
plot(mydata, main = 'mydata Time Series')
acf(mydata, main = 'mydata acf', lag = lag )
pacf(mydata, main = 'mydata pacf', lag = lag)
}
return_plot(mydata)
知道为什么会这样吗?
在你的函数中使用 print(plot(mydata, main = 'mydata Time Series'))
。