Почему R испытывает трудности с отображением графиков в файле PNG?

Почему R испытывает трудности с отображением графиков в файле PNG?

Я пытаюсь заставить R выполнять некоторые простейшие графические операции и тому подобное в UNIX, но получаю странную ошибку, связанную с X11, хотя, насколько я могу судить, X11 мне даже не нужен.

У меня есть имя матрицы d, и я хочу сохранить изображение тепловой карты этой матрицы, не отображая изображение (так как я не хочу использовать X11). Вот мой код:

png(file="my_image.png")
heatmap(d)
dev.off()

Проблема в том, что я получаю следующую ошибку:

Error in X11(paste("png::", filename, sep = ""), g$width, g$height, pointsize,  :
  unable to start device PNG

Кроме того: Предупреждающее сообщение:

In png(file = "interative_hen.png") :
  unable to open connection to X11 display ''

Я не знаю, происходит ли это, поскольку не понимаю, как R нуждается в X11, и даже если это так, X11 установлен и работает должным образом для всех приложений, с которыми я его тестировал.

решение1

Сначала проверьте, Rподдерживает ли используемая вами версия возможности PNG. Это можно сделать, вызвав capabilities()функцию из Rкомандной строки. Она должна вывести список, аналогичный следующему:

> capabilities()

jpeg    png    tiff    tcltk  X11    aqua     http/ftp  sockets
FALSE   FALSE  FALSE   TRUE   FALSE  FALSE    TRUE      TRUE

libxml  fifo   cledit  iconv  NLS    profmem  cairo
TRUE    TRUE   TRUE    TRUE   TRUE   FALSE    FALSE 

Если вы видите FALSEпод png, то вам нужно вручную перекомпилировать Rс явной поддержкой PNG. Если вы установили необходимые зависимости сборки, процесс сборки должен автоматически включить возможности PNG.


Наконец, если на кластере не запущен локальный X-сервер, ваш SSH-клиент может быть настроен неправильно — в частности, убедитесь, что вы включили пересылку X11 (используя флаги -Xили -Y, если вы используете UNIX-подобный sshинструмент). В качестве альтернативы вы можете попробовать использовать виртуальный фреймбуфер.

Подробности смотрите в этом вопросе на Stack Overflow:Как запустить R на сервере без X11 и избежать сломанных зависимостей.

Связанный контент