R png () / pdf () не работает при запуске скрипта, но работает при выполнении шаг за шагом - PullRequest
0 голосов
/ 10 апреля 2019

Я создаю скрипт для кластеризации моих данных на сервере.Мне нужно сохранить текстовый вывод и изображения, а также.Вывод текста работает просто отлично, но когда я пытаюсь использовать элемент png() + plot() + dev.off() для сохранения графиков, изображение не создается.

[ ДОБАВЛЕНО ДЛЯ УТОЧНЕНИЯ ]

Что мне нужно сделать, это СОХРАНИТЬ график (т.е. сгенерировать файл изображения) в рабочем режиме.Если я запускаю код шаг за шагом, файл создается.

Я уже пытался изменить формат изображения на PDF и JPG, используя соответствующие функции, но я все еще не получаю изображения в качестве вывода, когдаЗапуск кода в виде скрипта.При пошаговом выполнении это прекрасно работает.

Так как для рендеринга изображения, когда я выполняю шаг за шагом, требуется немного времени, я попытался добавить Sys.sleep(2) между командами (код ниже), но ничегоизменено.

Я думаю, что проблема может быть связана с пакетом, который я использую, и типом объекта, который он генерирует (library(NMF)).Я посмотрел документацию, чтобы узнать, было ли что-то в том, как функция plot() работает с типом объекта, который генерирует алгоритм кластеризации, но текст расплывчат:

"Результат (из estim.r <- nmf(esGolub, 2:6, nrun=10, seed=123456)например) является объектом S3 класса NMF.rank, который содержит data.frame с показателями качества в столбце и значениями r в строке. Он также содержит список согласованной матрицы для каждого значения r ".

"Все меры могут быть нанесены на график одновременно методом plot (рисунок 1), а функция consensusmap генерирует тепловые карты согласованной матрицы для каждого значения ранга".

Существует еще один тип образа, который можно создать после запуска кластеризации: consensusmap.Этот работает в обоих случаях (пошаговый и запущенный).

Сценарий довольно короткий.Вот оно:

library(NMF)
data = read.csv('R.csv', header=TRUE, sep=";")
res1 <- nmf(data, rank=2:5, nrun=1, "brunet", "random")

# this always works
capture.output(summary(res1) ,file = "summary.txt", append = TRUE)

# this always works too
png(filename = 'consensus.png', width = 1366, height = 768, units = 'px')
consensusmap(res1)
dev.off()

# this does not work on 'running mode', only 'stepping mode'
png(filename = 'metrics.png', width = 1366, height = 768, units = 'px')
# added hoping it would fix the issue. It didn't
Sys.sleep(2)
plot(res1)
# added hoping it would fix the issue. It didn't
Sys.sleep(2)
dev.off()

Файл summary.txt создан, consensus.png тоже.metrics.png нет.Что здесь происходит?

...