看教程不够直观,那就看视频吧! >>点击加载视频
众所周知,可视化是统计中不可缺少的一部分,也是很直观的传递信息的一种方式,并且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)
操作如下:
通过以上可以选择不同文件类型的位图。
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)
打开图片如下:
②导出wmf、emf
代码中只需将savePlot函数中的参数type的值改为wmf、或者emf即可:
打开图片的时候需要安装:ImageMagick这个工具
打开图片如下:
③导出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图件了。
路径更改前如下:
路径更改后如下:
打开图片如下:
2)使用交互窗口中的export按钮(rstudio)
生成图片以后,点击copy to clipboard,调整合适的大小,然后选择copy as的类型(bitmap,metafile), 确认后,然后就可以将图片粘贴到你想要他到的地方了,得到的是矢量图。
操作如下:
若需要导出pdf格式的图片,操作如下:
也可以用export按钮下的saveimage:
操作如下:
这里给出svg格式文件的图片如下:
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中还有很多其他方法能做到导出图片,望大家给出更好的建议,欢迎在下方留言,我们一起探讨哦~
关注微信公众号“易小蟹说统计”。
后台回复“导出”即可获取文中提到的图片打开工具哦~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!