我想制作一系列高分辨率和低分辨率版本的图,或者使用两种不同的文件类型(.png 和 .eps)以不同方式说明。我想知道最好/最少重复的方式来做到这一点。我正在使用中的gplot
函数sna
,并且绘图在绘图区域之外有一个自定义图例。我写了一个这样的函数:
library(sna)
plotfun <- function(net){
png("test.png",width=800)
p <- gplot(net)
par(xpd=T)
legend(max(p[,1])+1,max(p[,2]),legend=letters[1:10],title="custom legend")
dev.off()
seteps()
postscript(test.eps)
#repeat all the plotting commands, which are much longer in real life
dev.off()
}
#try it with some random data
plotfun(rgraph(10))
这是完美的功能,但似乎效率低下且笨拙。这个问题的更一般的版本是:如果出于任何原因我想创建一个图(包括像我的自定义图例这样的额外层),将它存储为一个对象,然后稍后再绘制它,有没有办法做到这一点?顺便说一句,这个问题起初对我来说似乎并不sna
具体,但在尝试使用plot
与传说似乎并不笼统。