В настоящее время я пытаюсь создать псевдоним функции R png
с помощью CairoPNG
для генерации png-файлов. Я пришел с точки зрения системного администратора на R - это значит, что я не написал ни один код R, и я не в состоянии изменить любой код R. Я запускаю его в конвейерах в среде elasti c HP C. Из-за особенностей среды мне пришлось бы устанавливать X11, cairo, et c на каждом исполняемом узле во время запуска (что добавляло бы 2-3 минуты произвольного времени к каждому заданию).
Я играл и установил пакет R Cairo
, который может генерировать png без перенаправления X11, а это именно то, что мне нужно. Если я попытаюсь использовать png
по умолчанию:
cars <- c(1,3,5)
png("cars.png")
Error in png("cars.png") : X11 is not available
Я понял, что могу обойти это, назначив CairoPNG
на png
в активном сеансе:
cars <- c(1,3,5)
png <- CairoPNG
png("cars.png")
plot(cars)
производит файл .png с именем cars.png
. Поэтому я собираюсь сделать то же самое из .Rprofile, где каждый скрипт R, использующий png
, на самом деле использует CairoPNG
под капотом.
В моем .Rprofile я добавил:
require("Cairo")
png <- CairoPNG
Когда я запускаю новый интерактивный R-сеанс через командную строку, я вижу, что Cairo используется, но назначение png <- CairoPNG
не работает:
Loading required package: Cairo
> png("cars.png")
Error in png("cars.png") : X11 is not available
Любая помощь был бы очень признателен!