我需要在一个变量中存储一个绘图对象。我知道我能做到:
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()
时,情节尚未准备就绪。
答案 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