Отключить графический интерфейс, графические устройства в R - PullRequest
9 голосов
/ 27 июля 2010

Есть ли простой способ превратить все элементы графического интерфейса в R и запустить его исключительно из командной строки в OSX?

Я пытаюсь воспроизвести поведение удаленного терминала Linux на моей машине с OSX. Таким образом, plot () должен просто сохранить файл, и такие вещи, как выбор зеркала CRAN, должны быть текстовыми, а не интерфейсом Tk. У меня проблемы с поиском, где установить это поведение.

Ответы [ 4 ]

4 голосов
/ 17 мая 2014

У меня был именно этот вопрос, и я хотел сделать это без изменения моего существующего кода. Я обычно работаю с поддержкой графики, но иногда я запускаю скрипт на сервере для большего набора данных, а затем просто хочу, чтобы графики выводились где-то автоматически.

В ответе Дирка Ян Феллоуз дает простое решение. В командной строке в R тип:

options(device=pdf)

И тогда любые графики будут записываться в текущий файл напрямую в файл Rplots.pdf.

Если вы хотите, чтобы файлы вообще не отображались, используйте

options(device=NULL)
3 голосов
/ 27 июля 2010

Для графиков вы можете просто направить вывод в файл, используя команду pdf () (или png (), jpeg () ...).

1 голос
/ 27 июля 2010

У меня нет блока OS X, но вы пытались сбросить переменную среды X11 DISPLAY:

DISPLAY = "" R --vanilla

Когда я делаю это в Linux и запрашиваю R для capabilties(), x11 выглядит как FALSE, как нужно.

0 голосов
/ 28 июля 2010

Я не запускаю OSX, но вы можете попытаться запустить R из приложения Terminal, а не из панели запуска Mac OSX, и посмотреть, работает ли он так, как вам нужно.

Как пишет Матти, вы можете отправитьвывод в файлы с помощью следующих команд;но я не знаю, действительно ли это суть вашего вопроса.

png("pngfile.png")
plot(foo)
title(main="bar")
dev.off()

Таким образом, вместо кварцевого графического объекта, ваш вывод идет в файл.

Аналогично, вы можете вывестичто обычно появляется в терминале в файл.

sink("foo.file")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...