我想绘制两个(或更多)具有相同绘图选项的图。代码看起来就像
plot(data1, type='l', lwd=2, col=c(1,1,2,1,3,1), pch=19)
plot(data2, type='b', lwd=2, col=c(1,1,2,1,3,1), pch=19)
如果我能在变量中保留一些选项,那就太好了。代码看起来就像
my_opt <- list(lwd=2, col=c(1,1,2,1,3,1), pch=19)
plot(data1, type='l', my_opt) ## it does not work
plot(data2, type='b', my_opt)
有办法让它起作用吗?
发布于 2018-06-10 23:03:22
我相信您正在寻找do.call
,使用do.call您可以做很多事情,其中之一是以列表的形式传递参数。
data1 <- data.frame(x = 1:10, y = (1:10)**2)
data2 <- data.frame(x = seq(1,10,2), y = 1:5)
my_opt <- list(lwd=2, col=c(1,1,2,1,3,1), pch=19)
do.call(plot, c(data1, type ="l", my_opt) )
do.call(plot, c(data2, type ="b", my_opt) )
发布于 2018-06-10 23:00:29
您可以编写一个小包装函数代替。
myplot <- function(mydata, ...){
plot(mydata, lwd = 2, col = c(1,1,2,1,3,1), pch = 19, ...)
}
myplot(data1, type = "l")
myplot(data2, type = "b")
https://stackoverflow.com/questions/50791792
复制相似问题