如何在VS Code中无需扩展、通过命令行运行R代码时显示绘图
问题根本原因
Rscript 默认运行在非交互模式下,不会自动启动Windows系统的交互式图形设备,也不会主动渲染弹出绘图窗口,你代码中的plot(iris)语句执行后没有可显示的输出载体,因此看不到绘图结果。
可行解决方法
方法1:修改脚本实现运行后直接弹出绘图窗口
调整Hello World.r的代码,手动开启图形设备并设置窗口停留逻辑:
library(datasets) # 手动启动Windows系统原生图形设备 windows() plot(iris) # 方案A:让绘图窗口停留10秒后自动关闭,可自行调整时间数值 Sys.sleep(10) # 方案B:按下回车键后才关闭绘图窗口,适合需要长时间查看的场景 # invisible(readLines(n = 1))
修改完成后再运行rscript "Hello World.r"即可看到弹出的绘图窗口。
方法2:不用修改脚本,换用R的交互模式执行命令
直接在VS Code终端运行以下命令,调用R的交互模式执行脚本,会自动弹出绘图窗口:
r -e "source('Hello World.r')"
如果需要窗口停留,执行时可以加等待逻辑:
r -e "source('Hello World.r'); invisible(readLines(n=1))"
方法3:将绘图直接保存为本地图片文件
不需要弹出窗口的话,可以修改脚本把绘图导出为图片,运行脚本后直接打开生成的图片查看即可:
library(datasets) # 开启png图像设备,设置输出路径和尺寸,也可换成jpeg()、pdf()等其他设备 png("鸢尾花数据集绘图.png", width = 800, height = 600) plot(iris) # 关闭设备,完成图片写入 dev.off()
运行脚本后同级目录下会生成对应的图片文件。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

