我用R画了一个简单的线性回归。 我想将该图像保存为PNG或JPEG,是否可以自动进行?(通过代码)
有两个不同的问题:首先,我已经在我的显示器上查看了情节,我想按原样保存它。其次,我还没有生成绘图,但我想在执行绘图代码时直接将其保存到磁盘。
我用R画了一个简单的线性回归。 我想将该图像保存为PNG或JPEG,是否可以自动进行?(通过代码)
有两个不同的问题:首先,我已经在我的显示器上查看了情节,我想按原样保存它。其次,我还没有生成绘图,但我想在执行绘图代码时直接将其保存到磁盘。
当前回答
像这样
png('filename.png')
# make plot
dev.off()
或者这个
# sometimes plots do better in vector graphics
svg('filename.svg')
# make plot
dev.off()
或者这个
pdf('filename.pdf')
# make plot
dev.off()
可能其他人也一样。它们都列在帮助页中。
其他回答
为了补充这些答案,如果您有一个R脚本,其中包含为屏幕(本机设备)生成图形的调用,那么这些都可以保存到pdf文件(非交互式shell的默认设备)中。“Rplots.pdf”(默认名称)通过将脚本从终端重定向到R(假设您运行的是linux或OS X),例如:
R < myscript.R --no-save
这可以根据需要转换为jpg/png
dev.copy(png,'path/pngFile.png')
plot(YData ~ XData, data = mydata)
dev.off()
如果你打开一个设备使用png(), bmp(), pdf()等由Andrie(最好的答案)的建议,窗口与绘图不会弹出打开,只是*.png, *bmp或*.pdf文件将被创建。这在大量计算中很方便,因为R只能处理有限数量的图形窗口。
然而,如果你想要看到这些图形并保存它们,在绘制图形并且包含它们的窗口处于活动状态后调用savePlot(filename, type)。
如果使用ggplot2,首选的保存方式是使用ggsave。首先,你必须创建一个plot,在创建plot后调用ggsave:
ggplot(...)
ggsave("plot.png")
图像的格式由您为文件名选择的扩展名决定。可以将其他参数传递给ggsave,特别是宽度、高度和dpi。
对于第一个问题,我发现dev.print在交互工作时是最好的。首先,您可以直观地设置您的绘图,当您对所看到的内容感到满意时,您可以要求R将当前的绘图保存到磁盘
dev.print(pdf, file="filename.pdf");
你可以用其他格式替换pdf,比如png。
这将复制你在屏幕上看到的图像。使用dev.copy的问题是图像通常是不同的,并且不记得窗口大小和纵横比-它强制在默认情况下将图形设置为正方形。
对于第二个问题(正如其他人已经回答的那样),必须在执行绘图命令之前将输出定向到磁盘
pdf('filename.pdf')
plot( yourdata )
points (some_more_data)
dev.off() # to complete the writing process and return output to your monitor