要特别强调的一点是,必须要使用 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 中将图表导出成文件相关推荐

  1. Origin图表导出png文件和pdf文件的方法

    小编在这里以Origin 2017为例,当我们生成需要的图表之后,如果要插入word文档就必须将这个图表转成照片,下面小编分享的是转成png照片格式和pdf文档的方法: 1.完成图表的生成后,点击&q ...

  2. Altium Designer中将FPGA引脚定义导出成文件

    想把画完的板子导出FPGA的引脚定义,自己想了想没什么好办法就百度了,还好网上有同行的分享.效果很好,自己补充些使用心得,算是给自己备忘. 原文看的是雨竹博主的分享,原文链接:http://blog. ...

  3. iOS 中将数据导出成Excel文件 ---- libxlsxwriter框架

    1.使用cocoapods导入libxlsxwriter pod libxlsxwriter在桥接文件中导入头文件 #import <xlsxwriter.h> 2.创建文件路径 let ...

  4. java导出csv文件_R语言数据导入与导出

    R语言数据导入与导出 整这么一个系列,还是因为学R语言时遇到过一个非常"小白友好"的网站"DataScience Made Simple".相信很多人搜到过这个 ...

  5. java中将查询数据导出_如何在R中将数据框导出到Excel

    java中将查询数据导出 What if I tell, that you can export data frames to excel in R within a couple of minute ...

  6. office表格中图表导出pdf

    很少用office表格来作图,临时做了一个图,想要保存为pdf,发现右键不能直接另存为图片. 原来有个功能叫:移动图表 移动图标之后可以选择新工作表 然后就可以适用整个office自带的文件下的另存为 ...

  7. 使用MYSQL命令直接导入导出SQL文件

    1.MYSQL中将数据库导出成SQL文件 其实很简单的,就是一条语句就可以了,首先我们打开cmd,不用进mysql指令界面,直接按照下列格式将导出语句敲进去,然后再输入密码即可了: mysqldump ...

  8. 在SqlServer 2008中将数据导成脚本

    当我们想将数据库搬到另一个环境中运行时,如果数据库的版本一样我们可以直接选择附加的方式,而如果实验环境中的数据库版本比当前数据库低,就无法附加了.这时要向将数据全部导过去就需要使用脚本的方式,像Sql ...

  9. mac r 导出csv文件_R在Max OS进行导入和导出xlsx文件

    R作为一门为统计设计的语言,可以方便灵活的进行文件导入和导出,大多数数据格式包括,csv, xlsx, txt,还有来自其他统计工具的SAS, SPSS, Stata, 数据文件都可以方便的导入和导出 ...

最新文章

  1. 机器学习之神经网络模型-上(Neural Networks: Representation)
  2. php简单网站源码包含数组_PHP 数组
  3. Python程序开发——第九章 异常处理
  4. 你不知道的JavaScript(二)
  5. VC中设置头文件的搜索路径~~
  6. python如何引发和处理异常_在python3.6中,如何捕捉异常并引发异常以便稍后处理?...
  7. spark应用程序转换_Spark—RDD编程常用转换算子代码实例
  8. com 组件调用不起来_Spring Cloud Alibaba训练营 —— 分布式服务调用
  9. C++ new和malloc区别
  10. 杜月笙的六句忠告,学会了不吃亏
  11. 计算机函数left的用法,excel中的left函数怎么使用呢?
  12. ActiveRecord 复合主键时 实体转换为DataRow
  13. 《Java并发编程实战》 第二章:线程安全性
  14. 老上网本不能上无线网
  15. 记录自己Kettle下载全过程
  16. java日志文件采集,日志收集十大技术细节
  17. astah新建一个项目_Astah Professional
  18. 基于vue的h5抽奖活动九宫格转盘及圆形转盘
  19. 方波的产生——555 产生方波
  20. excel怎么一个格子斜分_excel如何在单元格里加上斜线分割内容

热门文章

  1. ZCMU 1919: kirito's 星爆气流斩(多重背包+二进制优化)
  2. IC验证笔试题(寒武纪)
  3. hive 数据类型 java_Hive数据类型
  4. 一键修改计算机名(无需重启)
  5. java老师和学生(java老师学生类合集)
  6. PS~了解PS的第一步,基本操作
  7. 全球100位人工智能名人和2500名资深AI人士,将聚首深圳
  8. Win7更换锁屏壁纸
  9. win10和win server 2016新的TCP功能介绍
  10. linux 安装软件出现:“E:无法定位软件包”