我正在创建一个脚本来将我的数据聚集在服务器中。我还需要保存文本输出和图像。文本输出工作得很好,但是当我尝试使用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.png
。metrics.png
不是。这里发生了什么??