R图形设备【探索性数据分析学习日记10.17】

目录

一、图形设备类型Graphic device

图形设备类型:

1、grDevices包

2、 R图形设备列表

3、本机可用图形设备 

4、可选图形设备 

二、绘图步骤

(一)屏幕显示

1、调用绘图函数

2、将图形显示在屏幕设备上

3、为图添加注释

(2)输出到文件设备

1、明确指明或启动图形设备

2、调用绘图函数进行绘图【需要注意的是,在屏幕上并不会显示绘制出的图形】

3、添加注释信息

4、使用dev.0ff()关闭图形设备

三、图形文件设备

(一)概述

1、常见的矢量文件格式:

2、常见位图文件格式【栅格】

(二)输出pdf举例

(三) ggsave函数

 (四)pdf格式的特点说明

(五)输出SVG矢量文件

 (六)输出位图文件(PNG/TIFF)通过png()打开PNG图形设备—》画图—》dev.off()

1、普通输出

2、批量输出

​编辑 3、输出高质量png(位图最常用的就是png格式)

(2)使用ggplot

四、同时打开多个设备

五、复制图形

1、dev.copy()

2、dev.copy2pdf()

3、注意事项

六、总结


一、图形设备类型Graphic device

基本的绘图的包:base、lattice、ggplot2

图形设备类型:
• 计算机上的窗口 (屏幕设备)
• pdf文件 (文件设备)
• PNG或JPEG文件 (文件设备)【矢量】
• 可缩放矢量图形 (SVG) 文件 (文件设备)【栅格】
1、grDevices包

包:grDevices,是R中定义图形设备和提供颜色和字体支持的工具包

library(help="grDevices")

grDevices的版本应该与R的版本一致,没有版本相同的包时,找寻临近版本的包即可。 

2、 R图形设备列表
?Devices

列出的是该本的R支持的图形设备类型,运行结果如下,可以看出,该版本(4.2.1)R支持的图形设备类型有:窗口、pdf矢量图形、bitmap位图栅格图形等。

3、本机可用图形设备 

windows: 
On Windows only, the graphics device for Windows (on screen, to printer and to Windows metafile).意思是可以直接使用打印设备打印出来;

pdf、postscript指的是可以以文件的形式导出。postscript即ps格式。pdf不会失真。

xFig:输出XFIG格式文件;

pictex:像素图,即栅格数据。

4、可选图形设备 
• cairo_pdf, cairo_ps:基于cairo图形的PDF和 PostScript格式图形
• svg:SVG 图形格式,基于cairo图形
• png:输出PNG 格式到文件
• jpeg:输出JPEG格式到文件
• bmp:输出 BMP 位图格式文件
• tiff:输出 TIFF 格式文件

二、绘图步骤

(一)屏幕显示

1、调用绘图函数
2、将图形显示在屏幕设备上
3、为图添加注释

例子:

attach(faithful)
plot(eruptions,waiting)

(2)输出到文件设备
1、明确指明或启动图形设备
2、调用绘图函数进行绘图【需要注意的是,在屏幕上并不会显示绘制出的图形】
3、添加注释信息
4、使用dev.0ff()关闭图形设备

例子:

setwd("C:/Users/86178/Desktop/EDA/课后练习/10.17")#注意不要忘记首先设置当前目录,否则生成的图形会保存到默认的安装目录下
pdf(file="Rplot1.pdf") #打开pdf图形设备,要生成的图片的名字命名为Rplot1.pdf
with(faithful, plot(eruptions, waiting))#开始绘制
title(main = "Old Faithful Geyser data")#给图片添加注释
dev.off()#注意,在绘制完成后一定要记得关闭图形设备,否则,生成的pdf文件大小将为0

 

setwd("C:/Users/86178/Desktop/EDA/课后练习/10.17")#注意不要忘记首先设置当前目录,否则生成的图形会保存到默认的安装目录下
pdf(file="Rplot2.pdf") #打开pdf图形设备,要生成的图片的名字命名为Rplot1.pdf
with(faithful, plot(eruptions, waiting))#开始绘制
title(main = "Old Faithful Geyser data")#给图片添加注释

三、图形文件设备

(一)概述

两种基本类型的文件设备:矢量vector和位图(栅格)bitmap;

1、常见的矢量文件格式:

(1)pdf:首选、调整大小、线条类型较好;多个点,则效率不高;因为pdf内部存储的是画图指令。

(2)svg:动画和可交互性,基于XML的可伸缩矢量图形;基于web的图

(3)win.metafile: windows元文件格式

(4)postscript:即ps,方面调整大小,但win系统通常不带有ps查看器

2、常见位图文件格式【栅格】

(1)png:无损压缩、适用于绘制很多点,不便于调整大小;线条图或纯色图像

(2)jpeg:有损压缩,适用于照片等自然场景,适用于绘制很多点,不便于调整大小;不适用于线条图

(3)tiff:TIFF格式的位图文件;无损压缩;卫星影像;

(4)bmp:windows位图格式(bitmap位映射)

(二)输出pdf举例

pdf("mtcars1.pdf", width = 4, height = 4)
plot(mtcars$wt, mtcars$mpg)
library(ggplot2)
print(ggplot(mtcars,aes(wt,mpg))+geom_point())
dev.off()
null device 
          1 

打开一个图形设备之后,连续绘制两张图片后再dev.off()关闭,则图形设备中有两张图片被保存了下来;绘制多个图,则每张图片保存在一页中;

#图纸的默认尺寸单位是英寸,若想按厘米输出,需要手动转换。
# 8x8 cm 1px=2.54cm
pdf("myplot.pdf", width = 8/2.54, height = 8/2.54)

下面采用ggplot2包中的函数进行绘图:

(三) ggsave函数

不支持保存多页图片;可以直接指定单位为cm,不用进行单位的换算

并不是图形设备,只是普通的图片保存函数,不需要dev.off()

> plot1 <- ggplot(mtcars, aes(x = wt, y = mpg)) +geom_point()
> ggsave("myplot5.pdf", plot1, width = 8, height = 8, units = "cm")

 (四)pdf格式的特点说明

特点:打印输出,最佳选择

最容易与LaTex结合

矢量输出,文件远小于位图

记录的是绘图指令

点过多,pdf文件可能会很大

(五)输出SVG矢量文件

扩展包svglite.
分别使用图形设备和ggsave来存储SVG图片
library(svglite)
> svglite("myplot6.svg", width = 4, height = 4)
> plot(mtcars$wt, mtcars$mpg)
> dev.off()
RStudioGD 
        2 
> ggsave("myplot66.svg", width = 8, height = 8, units = "cm")

 (六)输出位图文件(PNG/TIFF)
通过png()打开PNG图形设备—》画图—》dev.off()

1、普通输出

默认的分辨率是72ppi(72像素每英寸px),适合于屏幕显示,打印输出质量较差。

png("myplot7.png", width = 400, height = 400)
> plot(mtcars$wt, mtcars$mpg)
> dev.off()
RStudioGD 
        2 
2、批量输出

在文件名中加入%d,可以实现批量输出;

png("myplot-%d.png", width = 400, height = 400)
> plot(mtcars$wt, mtcars$mpg)
> print(ggplot(mtcars, aes(x = wt, y = mpg)) + 
+             geom_point())
> dev.off()
R
 3、输出高质量png(位图最常用的就是png格式

(1)使用图形设备

 ppi <- 300
> png("myploth.png", width = 4*ppi, height = 4*ppi, res = ppi)
> plot(mtcars$wt, mtcars$mpg)
> dev.off()
RStudioGD 
        2 
(2)使用ggplot

可以直接指定单位,dpi即像素;

ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point()
> ggsave("myggplot.png", width = 8, height = 8, unit = "cm", 
+        dpi = 300)
Cairo包解决:CairoPNG(“myplot.png”),该函数虽然不保证字体能跨平台,但可以支持抗抖动和alpha通道;

四、同时打开多个设备

可以同时打开多个图形设备,但一次只能打印一个图形设备

dev.cur()可找到当前活动的图形设备

每个打开的图形设备都分配了一个从2开始的整数(没有图形设备1)。设备1就是窗口X11;
使用 dev.set(<integer>) 更改活动图形设备,其中<integer>是与要切换到的图形设备关联的数字;

五、复制图形

1、dev.copy()
可用于将绘图从一个设备复制到另一个设备。 例如,可以将绘图从屏幕设备复制到文件设备;
2、dev.copy2pdf()
函数的作用是将绘图从当前设备(通常是屏幕设备)复制到PDF文件。
with(faithful, plot(eruptions, waiting)) 
> ## 添加主标题
> title(main = "Old Faithful Geyser data") 
> ## Copy 当前图到png 文件
> dev.copy(png, file = "geyserplot.png") 
png 
  4 
> dev.copy2pdf(file = "geyserplot.pdf")
Error in dev.copy2pdf(file = "geyserplot.pdf") : 只可以从屏幕装置打印
> ## 别忘记关闭设备
> dev.off()
RStudioGD 
        2 
> dev.copy2pdf(file = "geyserplot.pdf")
RStudioGD 
        2 
3、注意事项
复制一个图不是一个精确的操作,所以结果可能与原始的不相同

六、总结

• 必须在图形设备上创建图。
• 默认的图形设备几乎总是屏幕设备,这对于探索性分析非常
有用。
• 文件设备对于创建可以包含在其他文档中或发送给其他人的
打印非常有用。
• 对于文件设备,有矢量和位图格式
• 矢量格式适用于使用少量点的线条图和纯色打印
• 位图格式适用于具有大量点的打印,自然场景或基于网络的图
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值