Отключить графический интерфейс, графические устройства в R
Есть ли простой способ превратить все элементы графического интерфейса в R и запустить его исключительно из командной строки в OSX?
Я пытаюсь повторить поведение удаленного терминала Linux на моей машине OSX. Таким образом, plot() должен просто сохранить файл, и такие вещи, как выбор зеркала CRAN, должны быть текстовыми, а не интерфейсом Tk. У меня проблемы с поиском, где установить это поведение.
4 ответа
У меня был именно этот вопрос и я хотел сделать это без изменения моего существующего кода. Обычно я работаю с поддержкой графики, но иногда я запускаю скрипт на сервере для большего набора данных, а затем я просто хочу, чтобы графики выводились где-то автоматически.
В ответе Дирка Ян Феллоуз дает простое решение. В командной строке в R тип:
options(device=pdf)
И тогда любые графики будут записаны в текущий непосредственно в файл Rplots.pdf.
Если вы хотите, чтобы файлы вообще не отображались, используйте
options(device=NULL)
Для графиков вы можете просто направить вывод в файл с помощью команды pdf() (или png(), jpeg()...).
У меня нет коробки с OS X, но вы пытались сбросить переменную окружения X11 DISPLAY:
DISPLAY = "" R --vanilla
Когда я делаю это в Linux и запрашиваю R для capabilties()
x11 выглядит как ЛОЖЬ, как хотелось бы.
Я не запускаю OSX, но вы можете попытаться запустить R из приложения Terminal, а не из панели запуска Mac OSX, и посмотреть, работает ли он так, как вам нужно.
Как пишет Матти, вы можете отправлять вывод в файлы, используя следующие команды; но я не знаю, действительно ли это суть вашего вопроса.
png("pngfile.png")
plot(foo)
title(main="bar")
dev.off()
Таким образом, вместо кварцевого графического объекта, ваш вывод идет в файл.
Точно так же вы можете вывести то, что обычно появляется в терминале, в файл.
sink("foo.file")