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

2023-11-05 19:10

本文主要是介绍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、注意事项
复制一个图不是一个精确的操作,所以结果可能与原始的不相同

六、总结

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

这篇关于R图形设备【探索性数据分析学习日记10.17】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/351913

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件