R语言可以这么玩 |高质量图片这样导出!

众所周知,可视化是统计中不可缺少的一部分,也是很直观的传递信息的一种方式,并且SCI文章投稿最重要的也是对于图片的处理。 一般杂志对图片要求:图片最低分辨率300DPI,部分杂志要求不低于6...

众所周知,可视化是统计中不可缺少的一部分,也是很直观的传递信息的一种方式,并且SCI文章投稿最重要的也是对于图片的处理。

一般杂志对图片要求:图片最低分辨率300DPI,部分杂志要求不低于600DPI,点线图及柱状图部分杂志要求达800DPI甚至1200DPI。杂志要求的分辨率是指原始图片的分辨率,经过Photoshop处理后修改图片的分辨率以达到杂志的要求通常是不可取的。

所以,小蟹家的统计师小朱在这里给大家分享下R语言做出的图片怎么导出。有什么不足的地方,望大家多多提出建议。


 

图形的两种格式

图形一般有二种格式:矢量图和位图。在这里,先给大家讲解下矢量图和位图的特点,然后分享下用R做出的图形,怎么导出这二种不同的图片格式。


1、矢量图

矢量图使用直线和曲线来描述图形,这些图形的元素是一些点、线、矩形、多边形、圆和弧线等等,它们都是通过数学公式计算获得的,无论对图形进行放大、缩小或旋转,都不会使图形失真和降低品质,也不会对文件大小有影响。矢量图以几何图形居多,图形可以无限放大,不变色、不模糊。常用于图案、标志、VI、文字等设计。常用软件有:CorelDraw、Illustrator、Freehand、XARA、CAD等。


2、位图

位图图像(bitmap), 亦称为点阵图像或绘制图像,是由称作像素(图片元素)的单个点组成的。这些点可以进行不同的排列和染色以构成图样。当放大位图时,可以看见赖以构成整个图像的无数单个方块。扩大位图尺寸的效果是增大单个像素,从而使线条和形状显得参差不齐。然而,如果从稍远的位置观看它,位图图像的颜色和形状又显得是连续的

RGB是位图颜色的一种编码方法,用红、绿、蓝三原色的光学强度来表示一种颜色。这是最常见的位图编码方法,可以直接用于屏幕显示。

CMYK是位图颜色的一种编码方法,用青、品红、黄、黑四种颜料含量来表示一种颜色。常用的位图编码方法之一,可以直接用于彩色印刷。

常用的位图处理软件是Photoshop。


3、矢量图与位图的区别

①分辨率

分辨率是一个笼统的术语,它指一个图像文件中包含的细节和信息的大小,以及输入、输出、或显示设备能够产生的细节程度。操作位图时,分辨率既会影响最后输出的质量也会影响文件的大小。处理位图需要三思而后行,因为给图像选择的分辨率通常在整个过程中都伴随着文件。无论是在一个300dpi的打印机还是在一个2570dpi的照排设备上印刷位图文件,文件总是以创建图像时所设的分辨率大小印刷,除非打印机的分辨率低于图像的分辨率。如果希望最终输出看起来和屏幕上显示的一样,那么在开始工作前,就需要了解图像的分辨率和不同设备分辨率之间的关系。显然矢量图就不必考虑这么多,矢量图图像的分辨率不依赖于输出设备。

②组成

位图的组成是像素;而矢量图的组成是数学向量。

③图形质量

位图的缩放和旋转容易失真,同时文件容量较大;而矢量图文件容量较小,在进行放大、缩小或旋转等操作时图象不会失真。

④绘制图形复杂度

位图只要有足够多的不同色彩的像素,就可以制作出色彩丰富的图象,逼真地表现自然界的景象;而矢量图不易制作色彩变化太多的图象。

⑤常用格式

位图一般是png, jpeg,tiff, tif,bmp,jpg的文件格式;而矢量图一般是:eps,ps,pdf,wmf, emf,svg.


 

R的实际操作步骤

上面说了那么多理论,现在我们开始用实际操作一下,练练手喽。

这里,我所选择的是用ggplot2包做出的一个散点图,用到的数据集是R中内置的数据集(diamonds).

首先加载ggplot2包:library(ggplot2)


1、导出不同格式的位图:

1)用saveplot()函数去做(注意在R中的使用,非Rstudio)

导出:png, jpeg,tiff, tif,bmp,jpg格式文件的图片,代码中只需更改参数type对应的值即可。

代码如下:

dsamp <- diamonds[sample(nrow(diamonds), 1000), ]

qplot(carat, price, data=dsamp, colour=clarity)

savePlot(filename = "Rplot",

         type ="png",

         device = dev.cur(),

         restoreConsole = TRUE)

图片打开方式,很简单,这里不再叙述。


2)使用交互窗口中的export按钮(rstudio)

操作如下:

attachments-2017-05-fXADsdhe591be282b5f8attachments-2017-05-UiIswv4x591be29391b5

通过以上可以选择不同文件类型的位图。


3)使用文件类型所对应的函数:

代码如下(这里只给出png文件类型的代码,其他文件类型依次类推):

#打开设备并设置相关参数

png(file="plot_diamonds.png",width=120,height=80)

#绘图

dsamp <- diamonds[sample(nrow(diamonds), 1000), ]

qplot(carat, price, data=dsamp, colour=clarity)

#关闭设备

dev.off()

这样就可以在R的工作目录下,找到生成的图片plot_diamonds.png。


2、导出不同格式的矢量图

1)用saveplot()函数去做(注意在R中的使用,非Rstudio)

①导出:pdf格式文件的图片:

代码如下:

dsamp <- diamonds[sample(nrow(diamonds), 1000), ]

qplot(carat, price, data=dsamp, colour=clarity)

savePlot(filename = "Rplot",

         type ="pdf",

         device = dev.cur(),

         restoreConsole = TRUE)

打开图片如下:

attachments-2017-05-SGcJkNtL591be2b3e2e9

②导出wmf、emf

代码中只需将savePlot函数中的参数type的值改为wmf、或者emf即可:

打开图片的时候需要安装:ImageMagick这个工具

打开图片如下:attachments-2017-05-DntucRZJ591be2c20c4b

③导出eps、ps文件:

代码中只需将savePlot函数中的参数type的值改为eps、或者ps即可:

打开图片的时候需要安装:GSview和GhostScript这个工具,分别安装完成之后。

首先查看 gs安装目录bin目录下的gsdll64.dll的路径,在GSview “Options”--"Advanced Configure"窗口下更改相应的路径。

Ghostscript DLL:更改gsdll64.dll的路径。

Ghostscript Include Path: 更改bin、lib的目录。

一般情况下按照上述步骤操作之后,就可以正常打开ps图件了。


路径更改前如下:

attachments-2017-05-ucSHWKF5591be5675c57路径更改后如下:

attachments-2017-05-if2yCvWi591be5854d30打开图片如下:

attachments-2017-05-RcwOq3Jl591be5a98044attachments-2017-05-7zv8hcs8591be5ba7e58


2)使用交互窗口中的export按钮(rstudio)

生成图片以后,点击copy to clipboard,调整合适的大小,然后选择copy as的类型(bitmap,metafile), 确认后,然后就可以将图片粘贴到你想要他到的地方了,得到的是矢量图。

操作如下:

attachments-2017-05-lEjS1Szt591be5d52344attachments-2017-05-rWI1zVRK591be5e4d18c


若需要导出pdf格式的图片,操作如下:attachments-2017-05-YU9x5Dtv591be5fd788d


attachments-2017-05-ACJT0hmi591be60c008a

也可以用export按钮下的saveimage:

操作如下:

attachments-2017-05-DBq1VplB591be620b045attachments-2017-05-tccfL0Pr591be62ed86e

这里给出svg格式文件的图片如下:

attachments-2017-05-RTDLxJUF591be63e6269

3)使用文件类型所对应的函数:

代码如下(这里只给出svg文件类型的代码,其他文件类型以此类推):

#打开设备并设置相关参数

svg(file="plot_diamonds.svg",width=12,height=8)

#绘图

dsamp <- diamonds[sample(nrow(diamonds), 1000), ]

qplot(carat, price, data=dsamp, colour=clarity)

#关闭设备

dev.off()

这样就可以在R的工作目录下,找到生成的图片plot_diamonds.svg。


 

总结

以上就是本文给出3种不同的方法分别导出不同的位图和矢量图。

当然,在R中还有很多其他方法能做到导出图片,望大家给出更好的建议,欢迎在下方留言,我们一起探讨哦~


关注微信公众号“易小蟹说统计”。

后台回复“导出”即可获取文中提到的图片打开工具哦~



  • 发表于 2017-05-17 14:04
  • 阅读 ( 11684 )
  • 分类:软件工具

2 条评论

请先 登录 后评论
不写代码的码农
易统计

统计专家

3 篇文章

作家榜 »

  1. 刘永鑫 64 文章
  2. 祝让飞 62 文章
  3. SXR 44 文章
  4. 张海伦 31 文章
  5. 爽儿 25 文章
  6. 调研图 14 文章
  7. 生信菜鸟团 13 文章
  8. deepxin 12 文章