2

我正在创建一个脚本来将我的数据聚集在服务器中。我还需要保存文本输出和图像。文本输出工作得很好,但是当我尝试使用png()++保存plot()绘图dev.off()时,没有创建图像。

[为澄清而添加]

我需要做的是在运行模式下保存绘图(即生成图像文件)。如果我逐步运行代码,则会创建文件。

我已经尝试使用相应的函数将图像格式更改为 PDF 和 JPG,但是当将代码作为脚本运行时,我仍然没有得到任何图像作为输出。踩踏时,效果很好。

由于在我逐步运行时 R 渲染图像需要一点时间,因此我尝试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.pngmetrics.png不是。这里发生了什么??

4

0 回答 0