Не могу отобразить png

Я использую R-Shiny (версия 3.0.1 (2013-05-16)) на виртуальной машине (Red Hat Enterprise Linux Server выпуск 6.4). Все работает, то есть сервер запускается, приложение запускается и т. Д., Пока я не пытаюсь построить график

renderPlot

Затем я вижу на главной панели сообщение [ошибка: невозможно запустить устройство png]. Я бы опубликовал весь свой код, но я думаю, что эта проблема связана с рендерингом графиков, так как когда я использую renderText и выкладываю некоторые данные, все работает отлично.

На самом деле, когда я просто набираю png() в R I, получаю эту ошибку [Ошибка в.External2(C_X11, вставка ("png::", filename, sep = ""), g$width,: невозможно запустить устройство PNG. Дополнительно: Предупреждающее сообщение: В png(): не удается открыть соединение с дисплеем X11 '' ]. Конечно, если я переадресую через ssh -X на мой Mac, я могу напечатать png() без проблем, вывести данные и т. Д....

Еще несколько вещей, на которые стоит обратить внимание, когда я набираю capabilties(), я нахожу единственные ложные значения: jpeg, tiff, X11, aqua и profmem (поэтому png и cairo - True)

-Я установил libpng, cairo и libX11, libX11-devel, libXt, libXt-devel перед сборкой R из исходного кода

Я предполагаю, что моя проблема в том, что мне нужно запустить X-сервер. Кроме того, переменная DISPLAY имеет значение null.

Итак, я полагаю, что когда все сводится к этому, мой вопрос... предполагая, что моя логика верна.

1) Нужно ли запускать / запускать X-сервер [в настоящее время он останавливается после запуска по какой-то причине] или я могу просто установить переменную DISPLAY?

2) Если я могу просто установить свою переменную DISPLAY, что мне следует установить (localhost:0.0 не работает)

Очевидно, что если я что-то упускаю, эти вопросы могут быть неуместны.

Заранее спасибо и извините за бессвязные, хотел быть тщательным.

PJ

2 ответа

Поможет ли это, если вы установите option(bitmapType = 'cairo')? Я скептически относился к тому, как R выбирает тип растрового устройства, используя .Call(C_cairoProps, 2L) в grDevices:::.onLoad() (это может быть ошибка, но я не могу сказать это точно).

Опция bitmapType возвращается к Xlib если тест cairo терпит неудачу, таким образом, давая вам загадочное сообщение об ошибке X11, Обратите внимание type аргумент в png():

> args(png)
function (filename = "Rplot%03d.png", width = 480, height = 480, 
    units = "px", pointsize = 12, bg = "white", res = NA, ..., 
    type = c("cairo", "cairo-png", "Xlib", "quartz"), antialias) 

Значением по умолчанию этого аргумента является getOption('bitmapType')и в вашем случае это Xlib из-за теста в grDevices:::.onLoad(), Если вы на 100% уверены, что cairo работает, вы можете изменить эту опцию, скажем, в вашем ~/.Rprofile,

Я смог решить эту проблему, установив несколько дополнительных пакетов разработки, а затем удалив / переустановив R из исходного кода. Все остальные рекомендуемые варианты не работали для меня до этого.

sudo yum install pango-devel pango libpng-devel

Перейдите в каталог, где был установлен исходный R-файл:

make uninstall
./configure --with-readline=no (or ./configure might work for you)
make
make install
Другие вопросы по тегам