8. R语言绘图系统介绍、高级绘图与低级绘图、【绘图参数】、绘图函数包

news2024/12/26 12:29:41

b站课程视频链接:
https://www.bilibili.com/video/BV19x411X7C6?p=1
腾讯课堂(最新,但是要花钱,我花99😢😢元买了,感觉讲的没问题,就是知识点结构有点乱,有点废话):
https://ke.qq.com/course/3707827#term_id=103855009
 
本笔记前面的笔记参照b站视频,【后面所有画图笔记】参考了付费视频
笔记顺序做了些调整【个人感觉逻辑顺畅】,并删掉一些不重要的内容,以及补充了个人理解
系列笔记目录【持续更新】:https://blog.csdn.net/weixin_42214698/category_11393896.html
🔥🔥🔥总结不易,还望各位友友,多多支持&&点赞🙏🙏你的鼓励是我更新的动力!

文章目录

  • 1. R语言绘图系统介绍
    • 1.1 图的类型
    • 1.2 数据维度
    • 1.3 绘图获取帮助
    • 1.4 绘图设备
  • 2. 高级绘图与低级绘图
    • 2.1 高级绘图命令
    • 2.2 低级绘图命令
  • 3. 绘图参数
    • 3.1 符号和线条
    • 3.2 颜色
    • 3.3 文本属性(用来指定字号、字体、字样)
    • 3.4 图形尺寸与图形边界
    • 3.5 标题
    • 3.6 坐标轴
    • 3.7 参考线
    • 3.8 图例(legend)
  • 4. 绘图函数包

1. R语言绘图系统介绍

R 语言具有强大的绘图功能,可以满足科研绘图的需求,越来越多的文章中采用 R 语言来进行绘图。
按照绘图方式,R 语言可以分为四大绘图系统,分别是:
1、R 基础绘图系统               3、lattice 绘图
2、Grid 绘图系统                 4、ggplot2 绘图。
除此之外,R 还有非常多的扩展包,几乎可以完成任何形式的绘图要求,无论是 2D 绘图还是 3D 绘图。最新的 shinny 包,还可以绘制交互式的绘图操作

学习途径:
数据可视化:https://www.data-to-viz.com/
R 绘图合集:https://www.r-graph-gallery.com/

1.1 图的类型

1、分布:散点图,密度图,直方图,直方图,小提琴图等
2、关系型:散点图,热图,相关性,气泡图等
3、变化趋势:条形图,雷达图,星云图,玫瑰风向图等
4、整体部分:堆叠(分组)条形图,饼图,树形图等
5、进化:折线图,面积图,时间序列图等;

1.2 数据维度

对于 R 语言绘图来说,最重要的其实是数据,也就是数据结构。每一个函数都有固定的数据结构要求,所以在画图之前必须了解数据的维度,是一维数据还是二维数据还是多维数据。以及是连续数据,还是分类数据
不同类型以及不同维度的数据采用不同的展现模式。
一般来说,数据的维数越高,展示起来越复杂。

  • 一维数据比较容易,一般常用点图,线图,饼图等来展示。
  • 二维数据一般是矩阵,可以使用热图,条形图的等。
  • 多维数据,一般采用多种元素来展现。
    例如,同一个点,可以通过点的大小对应(映射)数据大小,点的颜色,形状对应分类数据

1.3 绘图获取帮助

R 语言有非常完善的帮助系统,一般的绘图函数都有详细的帮助文档以及案例数据,可以通过 R 自带的案例数据进行学习。了解每个函数所需数据结构。此外,可以通过 example()函数运行绘图函数自带的案例数据。
然后在将自己的数据结构“做成”与案例数据结构一样的即可

example(boxplot)
demo (graphics)
demo(persp)

1.4 绘图设备

默认 R 绘图展示在绘图窗口中,可以直接显示,可以通过设置修改默认绘图设备。
绘图设备也称为图形设备” (Devices),指的是一个绘图的窗口或文件。
默认的绘图设备为屏幕显示(也就是Rstudio的右下角),也可以直接保存为文件。
不同的文件类型属于不同的绘图设备。R 支持的常用的绘图设备有以下几种:

在这里插入图片描述

在各种 R 的绘图设备中,最常用的为 X11 和 pdf。

  • X11 在绘图调试过程中非常方便,不用每次打开绘图文件,属于边绘图边查看的方式,所见即所得,这种交互式的方式适合调整图形,例如修改不同的绘图选项参数。
  • 在确定最终绘图方式并生成图形文件进行保存时,推荐使用pdf 格式,因为 R 绘制的 pdf 图形为矢量图(不失真), pdf 通用性较强,便于后期调整。绘制 pdf 图形的函数为 pdf() 。

当绘图函数开始执行时,如果没有打开绘图设备,那么 R 将打开一个绘图窗口来展示这个图形,默认打开的就是 X11 窗口,也可以使用命令 x11() 来直接打开一个绘图窗口。
R 可以同时打开多个绘图设备,dev.list( )最后一个设备将作为绘图时使用的设备,随后的所有图形都将在这上面显示。

# 打开(默认)窗口
x11()
# 图片直接输出到pdf中【当前工作目录】
pdf("文件名.pdf")     

# 可以显示所有打开的设备列表。
dev.list() 

# 关闭虚拟号为3的设备窗口
dev.off(3)

在这里插入图片描述
在这里插入图片描述



2. 高级绘图与低级绘图

按是否能够自动创建新的图形,R 的绘图函数可以分为两类——高级绘图函数低级绘图函数
高级绘图函数可以创建一个新的图形,低级绘图函数是在现有的图形上添加元素。

一般的,使用高级绘图命令绘制图形的框架,使用低级绘图命令对图形进行补充
另外,R 的绘图参数是对图形进行个性化修饰和调整的

2.1 高级绘图命令

R 中的高级绘图命令约有 20 多种,这里将最为常用的高级绘图命令概括如下:
在这里插入图片描述

2.2 低级绘图命令

R 中的低级绘图命令是针对现存图形的处理的,是对高级绘图命令产出的图形进行的补充。下面是一些主要的低级绘图命令:
在这里插入图片描述
在这里插入图片描述



3. 绘图参数

直接在 R 编辑器中输入命令 par()或者 par( no.readonly=TRUE)都可以获取当前的各个绘图参数。

3.1 符号和线条

pch:指定绘制点所使用的符号,取值范围[0, 24],其中 4 是“差号”,20 是“点”
cex:指定符号的大小。cex 是一个数值,表示 pch 的倍数,默认是 1.5 倍【即点的大小,对点进行缩放】
lty:指定线条类型。lty=1 代表实线,26 都是虚线,虚的程度不一样
lwd:指定线条宽度,默认值为 lwd=1,可以适当修改 1.5 倍、2 倍等

在这里插入图片描述

3.2 颜色

col:默认绘图颜色。某些函数(如 lines、pie)可以接受一个含有颜色值的向量,并自动循环使用。
col.axis:坐标轴刻度文字的颜色,不是坐标轴的颜色
col.lab:坐标轴标签(名称)的颜色
col.main:标题的颜色
col.sub:副标题的颜色
fg:图形的前景色
bg:图形的背景色

3.3 文本属性(用来指定字号、字体、字样)

cex.axis:坐标轴刻度文字的缩放倍数
cex.lab:坐标轴标签(名称)的缩放倍数
cex.main:标题的缩放倍数
cex.sub:副标题的缩放倍数
font:整数。用于指定字体样式。1 常规、2 粗体、3 斜体、4 粗斜体

3.4 图形尺寸与图形边界

pin:以英寸表示图形的宽和高
mai:以数值向量表示边界大小,顺序为"下、左、上、右",单位为英寸
48 / 110
mar:以数值向量表示边界大小,顺序为"下、左、上、右",单位为英分,默认值 c(5, 4, 4,
2)+0.1

3.5 标题

可以使用函数 title,格式为:title(main = " ", sub = " ", xlab = " ", ylab = "")

3.6 坐标轴

axes=FALSE 将禁用全部坐标轴,框架和刻度全部没有了
xaxt="n" 禁用 x 轴的刻度线
yaxt="n" 禁用 y 轴的刻度线
xlim x 坐标轴的范围,只写出最小值和最大值
ylim y 坐标轴的范围,只写出最小值和最大值
side:一个整数。表示在图形的哪边绘制坐标轴(1=下,2=左,3=上,4=右)
at:一个数值向量,表示需要绘制刻度线的位置
labels:一个字符型向量(也可以是数值型),表示刻度线旁边的文字标签(刻度值),如果整个不
写,则直接使用 at 的值
col:线条和刻度的颜色
lty:线条类型
las:标签的字体是否平行(=0)或者垂直(=2)坐标轴
tck:刻度线的长度(默认值-0.01,负值表示刻度在图形外,正值表示刻度在图形内侧)

3.7 参考线

abline(h=yvalues, v=xvalues)

3.8 图例(legend)

 legend(location, title, legend, ……)



4. 绘图函数包

R 语言绘图强大之处就在于 R 包含众多的绘图扩展包,几乎可以完成任何形式的绘图要求,而且还在不断增加之后,下面列出了 28 个实用程序包:
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/170857.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

筑基一层 —— 高质量C编程建议、详解猜数字游戏

目录 一.修炼必备 二.高质量C编程 2.1 高质量C编程的思维导图(需要思维导图的加qq:972606225获取) 2.2 文件结构 2.3 程序的形式 2.4 命名规则 三.猜数字游戏详解 一.修炼必备 1.入门必备:VS2019社区版,下载地址:Visual S…

torch_geometric -- Pooling Layers

torch_geometric – Pooling Layers global_add_pool 通过在节点维度上添加节点特征来返回批量图级输出,因此对于单个图 它的输出由下式计算 from torch_geometric.nn import global_mean_pool, global_max_pool, global_add_pool import torch as thf [[1,2,3,4…

Wider Face+YOLOV8人脸检测

YOLO系列的算法更新实在太快了,前些天刚学习完YOLOV7,YOLOV8就出来了。今天先理解模型的训练过程,后续再学习V8的网络结构等细节。YOLOV8源码链接:https://github.com/ultralytics/ultralytics1 数据格式转换Wider Face数据格式转…

java -- 14 多态、内部类、常用API

自动类型转换:多态下引用数据类型的类型转换强制类型转换案例:定义usb接口:定义鼠标和键盘的usb实现类,并有自己特有的方法,重写usb接口的方法,里面穿插了多态创建电脑类,把usb接口揉和进去&…

如何改变视频的MD5值?一分钟让你学会操作

肯定很多不是从事自媒体的朋友对MD5不是很熟悉,但其实它类似于人的身份证,只不过我们的身份证是一串数字,而它则是视频的后台编码,所以这也是一些平台用MD5来判断视频是否重复的依据。那么有人会问了,既然MD5这么特殊&…

Java实战:使用Hutool中的MailUtil实现邮件的发送

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️荣誉: CSDN博客专家、数据库优质创作者🏆&…

EasyExcel的导入导出使用

1、说明 EasyExcel是阿里出的一款基于Java的、快速、简洁、解决大文件内存溢出的处理Excel的开源工具,本文主要是使用这个工具对Excel导入导出进行讲解。 官网: https://easyexcel.opensource.alibaba.com/github: https://github.com/alib…

达梦主备之备库失联后在线恢复加入集群

一、主库故障重启(备库接管前重启) 主库故障后立即重启,此时主库的守护进程变成 Startup 状态,重新进入守护进程的 启动流程,将数据一致的备库归档设置为有效状态,其余备库归档设置成无效状态,并…

一些工具软件的使用

文章目录010 Editor设置16进制编辑时每行显示的字节数使用列模式编辑VS Code基础操作定义快捷键配置导出/导入列模式将文件中的tab键转换为空格关闭插件自动更新博文链接Beyond Compare文件内容相同依然显示差异过滤文件或文件夹Excel使用组合,进行行、列的折叠使用…

【DX-BT24蓝牙模块-AT命令与手机透传教程】

【DX-BT24蓝牙模块-AT命令与手机透传教程】1. 前言1.1.串口基本参数1.2.AT命令模式和透传模式1.3.模块数据吞吐量2. 接线2.1 模块线序定义2.2 相关AT命令详解2.2.1 命令格式说明2.2.2 回应格式说明2.2.3 AT命令举例说明3. AT命令详解3.1 基础指令3.2 AT指令测试3.3 手机测试4. …

英华特在创业板提交注册:拟募资约5亿元,股权结构较为分散

近日,苏州英华特涡旋技术股份有限公司(下称“英华特”)在上海证券交易所递交注册。据贝多财经了解,英华特的上市申请于2021年6月30日获得受理,2022年8月25日获得创业板上市委会议通过。 本次冲刺上市,英华特…

智合同丨你还在为填写合同台账犯愁吗?

最近有朋友问我有没有什么智能化手段处理合同台账问题?对方表示合同台账管理实在是太麻烦了,工作量大,占用时间多。答案肯定是有的,那么首先我们来了解下合同台账。合同台账一般指合同台帐,包括合同登记台帐、合同检查…

Solidity 中的数学(第 1 部分:数字)

本文开启了一系列关于在 Solidity 中进行数学运算的文章。第一个要讨论的话题是:数字。 介绍 以太坊是一个可编程的区块链,其功能可以通过将称为智能合约的可执行代码片段发布到区块链本身来扩展。这将以太坊与第一代区块链区分开来,在第一代…

PointNet.pytorch点云三维深度学习论文与代码复现

PointNet.pytorch1. 概要1.1 文章1.2 点云和三维深度学习,PointNet 网络结构1.3 复现说明2. 代码2.1 代码逻辑2.2 思路详解3. 解析组会2023.1.18远程arcivdailyonedb1. 概要 1.1 文章 链接: 论文 1.2 点云和三维深度学习,PointNet 网络结构 链接: 三…

程序员必备素质:代码整洁之道

本次分享的内容是《代码整洁之道》,书中是以现实案例,以讲故事形式来总结归纳问题,并给出解决方案,很容易与我们产生共鸣。文中会有大量书中内容摘抄,都是个人认为很值得分享的内容。当然,也会有个人感悟&a…

【C++】从0到1入门C++编程学习笔记 - 基础入门篇:C++初识

文章目录一、第一个C程序1.1 创建项目1.2 创建文件1.3 编写代码1.4 运行程序二、注释三、变量四、常量五、关键字六、标识符命名规则一、第一个C程序 编写一个C程序总共分为4个步骤 创建项目创建文件编写代码运行程序 1.1 创建项目 Visual Studio是我们用来编写C程序的主要…

【C语言课程设计】通讯录(2.0版本)

前言 在前面的博客中,我们已经了解了通讯录的基本写法。当然那个通讯录是不够完善的。我们本小节对前面的通讯录做一次小升级,添加动态增容模块与利用枚举来优化选择语句 【C语言课程设计】通讯录(1.0版本)_青色_忘川的博客-CSDN博…

JVM-内存模型详解

JVM 把内存分为若干个不同的区域,这些区域有些是线程私有的,有些则是线程共享的,Java 内存区域也叫做运行时数据区,它的具体划分如下: 虚拟机栈 Java 虚拟机栈是线程私有的数据区,Java 虚拟机栈的生命周期…

word查看技巧:如何快速找到文档的修改痕迹

不知道大家在工作中有没有遇到过这类的工作场景:当初步拟好一份合作协议或是项目策划书后,发给老板或其他同事审阅和修订,通常会不断地来回修改文档。此时,如果你想要查看文档哪里被修改过?你会怎么操作?很…

SpringBoot集成Elasticsearch7.4 实战(二)

1、前言本篇文章主要讲的是:在Springboot环境下,利用JAVA环境操作索引,集成SpringBoot等相关知识2. SpringBoot集成开发工具,这里选择的是IDEA 2019.2,构建Maven工程等一堆通用操作,不清楚的自行百度。2.1. POM配置我这边选择 ela…