将绘图文本/二进制写入变量

时间:2009-10-23 15:47:33

标签: r plot

有没有办法让R设备(postscript会很棒)将输出写入变量而不是文件?

例如,我知道:

postscript(file="|cat")
plot(1:10)
dev.off()

将postscript文本发送到STDOUT。如何将该文本转换为R中的变量?

4 个答案:

答案 0 :(得分:3)

我已成功将一个情节的二进制作为一个字符串变成一个R变量。它有一些读/写开销。在下面的代码片段中,R将绘图保存为临时文件并将其读回。

## create a plot
x <- rnorm(100,0,1)
hist(x, col="light blue")

## save plot as temp file
png(filename="temp.png", width=500, height=500)
print(p)
dev.off()

## read temp file as a binary string
plot_binary <- paste(readBin("temp.png", what="raw", n=1e6), collapse="")

也许这对你有帮助。

答案 1 :(得分:1)

postscript采用命令参数,因此postscript(file =“”,command =“| cat”)

答案 2 :(得分:1)

为什么你想要这样做呢? R不是一个非常好的操作Postscript文件的系统。如果不出意外,您可以使用tempfile()将图像写入文件,然后可以使用标准文件函数读取该文件。如果你想要花哨,你可以使用fifo()管道,但我怀疑它会更快。但我怀疑你会采用不同的方法做得更好。

答案 3 :(得分:0)

您应该能够使用textConnection,如下所示。

tc <- textConnection("string", "w")

postscript(tc)
plot(1:10)
dev.off()

但是string仍然是空白的 - 也许是一个错误?