R图没有显示图形窗口

时间:2014-05-20 18:48:18

标签: r plot

我需要在一个变量中存储一个绘图对象。我知道我能做到:

plot(rnorm(10))
obj = recordPlot()
replayPlot(obj)

但我不想显示图形窗口。所以我试图这样做,但直到现在都没有成功。

win.metafile()
plot(rnorm(10))
obj = recordPlot()
dev.off()
replayPlot(obj) # it shows a null plot

好吧,可能是因为当我正在做obj = recordPlot()时,情节尚未准备就绪。

2 个答案:

答案 0 :(得分:5)

来自?recordPlot

The displaylist can be turned on and off using dev.control. 
Initially recording is on for screen devices, and off for print devices.

因此,如果要记录写入文件的图表,则需要打开显示列表:

win.metafile()
dev.control('enable') # enable display list
plot(rnorm(10))
obj = recordPlot()
dev.off()
replayPlot(obj)

答案 1 :(得分:0)

您可以使用ggplot2轻松完成此操作:

require(ggplot2)
data = data.frame(x = 1:100, y = rnorm(100))
p = ggplot(data) + geom_point(aes(x, y)) + theme_classic()
print(p) # this show the plot