在Slurm集群使用R包Related时如何保存compareestimators()生成的图形
完全可以将该函数生成的图形直接保存为文件,不需要依赖图形界面,操作方法如下:
核心原理
compareestimators()默认将图形输出到当前激活的R图形设备,你只需在调用该函数前手动打开文件型图形设备,调用结束后关闭设备,即可将图形写入指定文件。
操作步骤
- 修改你的R脚本,调整
compareestimators()的调用逻辑,示例代码如下:# 加载Related包,这一步你原有脚本应该已经有了 library(Related) # ------------ 新增图形保存代码 ------------ # 方式1:保存为PDF矢量图,宽高参数可根据需求自行调整 pdf("compare_estimators_result.pdf", width = 10, height = 8) # 方式2:保存为PNG位图,res参数控制分辨率,数值越高图越清晰 # png("compare_estimators_result.png", width = 1200, height = 900, res = 150) # ----------------------------------------- # 你原有调用compareestimators()的代码,参数保持不变即可 compareestimators(你的原有输入参数) # ------------ 必须添加的收尾代码 ------------ # 关闭图形设备,缺少这一步会导致输出的文件损坏无法打开 dev.off() - Slurm作业配置无需额外调整,直接提交修改后的sbatch脚本即可
- 作业运行完成后,从集群下载生成的图形文件到本地查看即可
注意事项
- 推荐图形输出路径写绝对路径(比如
/home/你的用户名/项目目录/xxx.pdf),避免因工作目录匹配问题找不到生成的文件 - 不要在R脚本中调用
X11()等依赖GUI的图形设备,集群计算节点默认没有图形界面,这类调用会直接导致任务报错终止 - 如果未正常生成文件,可先查看Slurm输出的.err错误日志,排查是否有写入权限不足、包加载失败等问题
内容的提问来源于stack exchange,提问作者ltalignani
相关产品推荐
相关产品推荐

