Отключить графический интерфейс, графические устройства в 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")
Другие вопросы по тегам