Записать текст графика / двоичный файл в переменную
Вопрос
Есть ли способ заставить устройство R
(было бы неплохо использовать PostScript) записать вывод в переменную вместо файла?
Например, я знаю это:
postscript(file="|cat")
plot(1:10)
dev.off()
Отправит текст постскрипта в STDOUT
. Как я могу получить этот текст в переменную внутри R
?
Решение
Мне удалось получить двоичный файл графика в переменную 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="")
Может быть, это полезно для вас.
Другие советы
postscript принимает аргумент команды, поэтому postscript (file = " " команда = " | cat ")
С какой стати ты хочешь это сделать? R не очень хорошая система для манипулирования файлами Postscript. Если ничего другого, вы можете использовать tempfile (), чтобы записать изображение в файл, который затем можно прочитать с помощью стандартных файловых функций. Если вы хотите быть модным, вы можете использовать fifo () pipe, но я сомневаюсь, что это будет намного быстрее. Но я подозреваю, что вам лучше воспользоваться другим подходом.
Вы должны иметь возможность использовать textConnection следующим образом.
tc <- textConnection("string", "w")
postscript(tc)
plot(1:10)
dev.off()
Но string
остается пустым - может быть, ошибка?