我想要生成一系列高分辨率和低分辨率版本的圖表,或者使用兩種不同的文件類型(.png和.eps)進行不同的表述。我想知道最好/最不重要的方式來做到這一點。我在sna
中使用gplot
函數,並且繪圖在繪圖區域外有一個自定義圖例。我寫了這樣一個功能:在繪製時創建多個文件類型
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
類似的函數來重現問題時,我無法讓圖例正確顯示,因此這種解決方案適用於外部情節區傳奇似乎並不普遍。