R png()/pdf()不';运行脚本时不起作用,但逐步执行时起作用

R png()/pdf()不';运行脚本时不起作用,但逐步执行时起作用,r,nmf,R,Nmf,我正在创建一个脚本来将数据集群到服务器中。我需要保存文本输出和图像以及。文本输出工作正常,但是当我尝试使用png()+plot()+dev.off()东西来保存绘图时,没有创建任何图像 [为澄清而添加] 我需要做的是在运行模式下保存绘图(即生成图像文件)。如果我一步一步地运行代码,就会创建文件 我已经尝试使用相应的函数将图像格式更改为PDF和JPG,但在以脚本形式运行代码时,仍然没有图像作为输出。当踏步时,效果非常好 因为当我一步一步地运行时,R渲染图像需要一点时间,所以我尝试在命令之间添加Sy

我正在创建一个脚本来将数据集群到服务器中。我需要保存文本输出和图像以及。文本输出工作正常,但是当我尝试使用
png()
+
plot()
+
dev.off()
东西来保存绘图时,没有创建任何图像

[为澄清而添加]

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

我已经尝试使用相应的函数将图像格式更改为PDF和JPG,但在以脚本形式运行代码时,仍然没有图像作为输出。当踏步时,效果非常好

因为当我一步一步地运行时,R渲染图像需要一点时间,所以我尝试在命令之间添加
Sys.sleep(2)
,但没有任何更改

我认为问题可能与我正在使用的包及其生成的对象类型有关(
library(NMF)
)。我查看了文档,看看
plot()
函数处理聚类算法生成的对象类型的方式是否有什么问题,但文本是模糊的:


“结果(of
estim.r)你能试着打印(plot(res1))吗?@Roland是对的。
NMF
中的
plot
方法使用
ggplot()
进行打印,它只在打印结果时进行打印。我认为使用
源代码(“script.r”,echo=TRUE)可以得到相同的结果。”
,因为它可以自动打印。@Roland我想可能有一点我不清楚:我不会在我的机器上运行此代码。它将在服务器上运行,因此我没有访问GUI的权限。我需要自动保存打印。打印然后保存不是一个选项。我想可能你不理解我的观点。我相信你正在运行我的nto a如user2554330所述。好的,现在我明白了。它成功了。@user2554330提到的解决方案成功了。非常感谢,伙计们!你们能试一下打印(plot(res1))吗?@Roland是对的。
NMF
中的
plot
方法使用
ggplot()
进行打印,它只在打印结果时进行打印。我认为使用
源(“script.R”,echo=TRUE)可以获得相同的结果
,因为它可以自动打印。@Roland我想可能有一点我不清楚:我不会在我的机器上运行此代码。它将在服务器上运行,因此我没有访问GUI的权限。我需要自动保存打印。打印然后保存不是一个选项。我想可能你不理解我的观点。我相信你正在运行我的正如user2554330所描述的nto a。好的,现在我明白了。它成功了!由@user2554330提到的解决方案成功了。非常感谢,伙计们!
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()