R 中将图表导出成文件

要特别强调的一点是,必须要使用 dev.off() 命令来告诉 R 我们已经完成绘图,否则我们的要保存的图像就不会出现

1、导出 PDF 文件

PDF 是一个矢量文件格式。矢量文件在作为输出时是比较受欢迎的,因为它可以被任意地缩放而不会失真(像素化),一个向量文件的大小通常比相应的位图文件小,除非它包含了太多的对象(比如一幅散点图中有成千上万的样本点,那么它的矢量图就会很大,位图则相对较小)。

pdf("plots.pdf")
plot(...)
plot(...)
dev.off()

默认情况下,导出的 PDF 文件为 7x7 英寸大,每一幅图都被放在一个新页中。我们可以通过如下方式来改变大小:

# 6x3 英寸 
pdf("plots.pdf", width=6, height=3)

# 10x6 厘米 
pdf("plots.pdf", width=10/2.54, height=6/2.54)

如果我们想直接用一些矢量图绘制工具例如 Inkscape 或 Illustrator 来处理这些矢量文件,那么有可能会出现数据点呈字符形式而非原本的圆形或方形等,如下方法可以避免这一问题:

pdf("plots.pdf", useDingbats=FALSE)

2、导出 SVG 文件

SVG 是另一种矢量格式。 svg()函数的默认设置并不允许将多页图像输出为单一文件,这是因为大多数 SVG 浏览器都不支持多页的 SVG 文件。如果你想输出多页的 SVG,详情可见本节的 PNG 部分。

svg("plots.svg")
plot(...)
dev.off()

相比于 PDF 文件,SVG 文件更易于矢量处理。

3、导出 PNG/TIFF 文件

PNG 和 TIFF 是位图(或称光栅图像)的格式。在将它们放大后,我们能够清楚的分辨出其中的像素点。

png("plot.png")
# or tiff("plot.tiff")
plot(...)
dev.off()

在默认的情况下,这类图像的输出大小为 480x480 素,分辨率为 72 dpi(6.66x6.66 英寸).
增加分辨率将会放大文本与图像元素的大小,只是因为画布元素的大小只与图像的物理大小有关,而与图像的像素大小无关。例如一个 12 像素点的字符原本高度为 12/72 = 1/6 英寸,在分辨率为 72dpi 的条件下,它共包含 12 个像素点,而当分辨率放大为 120dpi 时,它就含有 20 个像素点了。
下列操作将会创建一个大小为 480x240 像素的图像,其分辨率为 120dpi,实际大小相当于 4x2 英寸。

png("plot.png", width=480, height=240, res=120)
plot(...)
dev.off()

如果我们想要输出多幅图像,那么我们就必须要执行一个新的png()命令,或是将%d置于文件名中:

png("plot-%d.png")
plot(...)
dev.off()

上述操作将会生成 plot-1.png, plot2.png 等一系列文件。

以上内容转自 数析学院,原文后续还有涉及到如何导出文件至不支持 PDF 的程序(MS Office)、ggplot、由屏幕保存图像等内容,有需要的同学可以直接查看原文

你可能感兴趣的:(R)