目录

常用高级画图函数

plot()

例1

例2

例3

例4

例5

hist( )

例6

stem()

boxplot()

例7

qqnorm( )

例8

常用低级画图函数

points()

例1

例2

abline()

例3

identify()

例4


数据作图是数据分析的重要方法之一,R提供了丰富的作图函数。

R有两类作图函数,一类是高水平作图函数,另一类是低水平作图函数。

  • 高水平作图函数:所有的绘图函数均可产生图形,可以有坐标轴,以及图和坐标轴的说明文字等。有plot() 、pairs() 、 coplot() 、qqnorm() 、qqline() 、hist() 、contour() 等
  • 低水平作图函数:作图函数本省无法生成图形,只能在高水平作图函数产生的图形的基础上,增加新的图形。有points() 、lines() 、 text() 、 abline() 、 polygon() 、legend() 、 title() 、 axis()  

常用高级画图函数

plot()

可绘出数据的散点图、线图,生成图形的类型取 决于第一个参数的类型或类别

例1

简单散点图

如果data是向量,plot(x)绘图的y轴为data的值,x轴为向量的索引,例如:

> data<-1:10
> plot(data)

如果a,b是两组向量,plot(x,y)绘出的是(1,2),(3,6),(4,3),(7,9)的散点图,例如:

> a<-c(1,3,4,7)
> b<-c(2,6,3,9)
> plot(a,b)

例2

画出学生身高和体重的散点图

代码:

> height<-c(56.5, 65.3, 64.3, 56.3, 59.8, 66.5, 51.3,62.5, 62.8, 69.0, 63.5, 67.0, 57.3, 62.5,59.0, 72.0, 64.8, 57.5, 66.5)
> weight<-c(84.0, 98.0, 90.0, 77.0, 84.5, 112.0,50.5, 112.5, 102.5, 112.5, 102.5, 133.0, 83.0, 84.0, 99.5, 150.0, 128.0, 85.0,112.0)
> plot(height,weight)

结果图:

例3

画出标准正态分布图

代码:

> x<-seq(-5,5,length.out=100)
> y<-dnorm(x,0,1)
> plot(x,y)

结果图:

例4

画曲线图,例如正弦曲线。

代码:

> plot(sin, -pi, 2*pi) 

第一个变量类型为sin函数,则绘出的图为正弦曲线图

结果图:

例5

画箱线图——利用四种不同配方的材料A1,A2,A3,A4生产出来的元件,测得其使用寿命如下,绘出四种不同配方材料寿命的箱线图,并分析。

代码:

> data<-c(1600, 1610, 1650, 1680, 1700, 1700, 1780, 1500, 1640,1400, 1700, 1750, 1640, 1550, 1600, 1620, 1640, 1600,1740, 1800, 1510, 1520, 1530, 1570, 1640, 1600)
> f<-factor(c(rep(1,7),rep(2,5), rep(3,8), rep(4,6)))
> plot(f,data)

结果图:

分析:

从结果图来看,A1材料生产的元件平均寿命最高,并且寿命大多聚集在平均寿命附件,说明比较稳定。
A2、A3的平均寿命近似相等,但都小于A1材料。此外,A3材料的生产元件的寿命要比A2稳定。并且A3材料出现的最高元件寿命是最高的,说明A3材料有生产更高寿命元件的潜力。
A4材料生成的元件平均寿命最低。

plot()函数还可以自定义参数

type:规定绘图方式。

xlim:x 用 (x1, x2) 限制 plot 的x 轴。同理,ylim,y 用(y1,y2)限制plot的y轴。

main:给图片加标题

xlab:X轴标签;ylab:Y轴标签

axes:指示是否两个坐标轴都画出。

asp:限定 y/x aspect 比率

hist( )

绘制直方图的函数。

直方图概念:对于数据分布,常用直方图(histogram)进行描述。将数据取值的范围分成若干区间(一般是等间距的),在等间隔的情况下,每个区间长度称为组距。考察数据落入每一区间的频数与频率,在每个区间上画一个矩形,它的宽度是组距,它的高度可以是频数、频率或频率/组距, 在高度是频率/组距的情况下,每一个矩形的面积恰是数据落入区间的频率,这种直方图可以估计总体的概率密度。组距对直方图的形态有很大的影响,组距太小,每组的频数较少,由于随机性的影响,邻近区间上的频数可能很大;组距太大,直方图所反映的形态就不灵敏。

例6

绘制15名学生体重的直方图

> data<-c(75.0, 64.0, 47.4, 66.9, 62.2, 62.2, 58.7, 63.5,66.6, 64.0, 57.0, 69.0, 56.9, 50.0, 72.0)
> hist(data)

stem()

绘制茎叶图

boxplot()

绘制箱线图,箱线图可以直观简洁地展现数据分布的主要特征。

箱线图的用处:一是可以直观的看出大部分数据的集中区域(箱子的区域),此外,也可以看到极大值和极小值。最重要的是分析是否存在离群点。
注:在箱线图中,上(Q3)和下(Q1)四分位数分别确定出中间箱体的顶部和底部。 箱体中间的粗线是中位数。 箱体向上和向下伸长的垂直部分称为“触须”,表述数据的散布范围,最远点为1.5倍四分位 间距。超出此范围的店称为异常值点,异常值点用“o"表示。

例7

画出31名学生成绩的箱线图

> data<-c(25, 45, 50, 54, 55, 61, 64, 68, 72, 75, 75,78, 79, 81, 83, 84, 84, 84, 85, 86, 86, 86,87, 89, 89, 89, 90, 91, 91, 92, 100)
> boxplot(data)

从本例中的箱线图可以直观看出,整体数据分布在40~100之间,平均值是80多,大部分的学生成绩都集中在70~90之间,有一个离群点,成绩<40。

qqnorm( )

分位数—分位数图(quantile-quantile plot),也称为QQ图。
如果我们要鉴别样本是否近似于某种类型的分布是困难的,QQ图可以帮助我们鉴别样本的分布是否近似于某种类型的分布。一个是样本分位数(Sample Quantiles),一般画在纵轴, 一个是理论分位数(Theoretical Quantiles),一般画在横轴。

分位数图可以检验一组数据是否服从正态分布——如果画出的数据近似在一条直线附近,则认为此组数据服务正态分布。

比如,如果样本是成正态分布的,则对应正态分布的QQ图是一些散点并近似在如下所示的直线附近:


此直线的斜率是标准差,截距是均值。所以,可以利用正态QQ图做直观的正态性检验。若QQ图上的点近似的在一条直线附近,可以认为样本数据来自正态分布总体。

例8

生成向量x的正态积分图

> x<-1:10
> qqnorm(x)

例9

例画出15名学生的体重的QQ图

> data<-c(75.0, 64.0, 47.4, 66.9, 62.2, 62.2, 58.7, 63.5,66.6, 64.0, 57.0, 69.0, 56.9, 50.0, 72.0)
> qqnorm(data)
> qqline(data)

常用低级画图函数

points()

在当前图形上添加点。

函数plot()的参数 type="p"作用同points()函数。

例1

> x<-1:10
> y<-seq(2,20,by=2)
> plot(x,y)
> points(3,20)

lines()

在当前图形上添加线。

函数plot()的参数 type="l"作用同lines()

例2

> x<-1:10
> y<-seq(2,20,by=2)
> plot(x,y)
> lines(x,y)

abline()

该函数可以有如下形式:

abline(a, b):在当前图上添加一条斜率为b,截距为a的直线。

abline(h=y):h=y在图形指定的高度上绘制一条贯穿图形的水平线。

abline(v=x):v=x在x轴的指定位置绘制一条贯穿的垂线。

abline(lm.obj):而 lm.obj是一个包含coefficients组件的列表,该组件的长度为2,分别当作截距和斜率。

例3

> x<-1:10
> y<-seq(2,20,by=2)
> plot(x,y)
> lines(x,y)
> abline(1,3)

> x<-1:10
> y<-seq(2,20,by=2)
> plot(x,y)
> lines(x,y)
> abline(1,3)
> abline(h=9)

> x<-1:10
> y<-seq(2,20,by=2)
> plot(x,y)
> lines(x,y)
> abline(1,3)
> abline(h=9)
> abline(v=6)

identify()

允许用户在x,y(使用鼠标左键)定义的点附近绘制相应的labels的组件(如果没有给出labels就给出该点的序号),突显该点。当鼠标的另一个键被点击时 (Unix,Windows)返回被选点的序号,在 Mac下通过点击图形窗口外来实现这个效果。
有时我们更想确定图形中的点,而非它们的位置。例如,我们可能希望从图示中选出某些感兴趣的观测点,然后进行某些操作。通过两个数值向量x,y给定一系列坐标(x; y),我们可以使用identify()函数:

例4

> x<-1:10
> y<-seq(2,20,by=2)
> plot(x,y)
> identify(x,y)

R语言基础之用R语言绘制各类函数图像相关推荐

  1. python有哪些软件包用来考察变量之间的相关性_Python语言基础考察点:python语言基础常见考题(一)...

    一.python是静态还是动态类型?是强类型还是弱类型? 1.动态强类型语言(不少人误以为是弱类型) 不要傻傻分不清 2.动态还是静态指的是编译期还是运行期确定类型 3.强类型指的是不会发生隐式类型转 ...

  2. 基于 function-plot.js 开源库绘制数学函数图像实现兼文档翻译

    一.前言: 前段时间移动项目想实现一个能实时绘制数学函数图像的H5小应用, app 通过 webview 进行嵌入,目前网上提供了大致有两种方法: ①.Chart.js 结合 Plugins 绘制 = ...

  3. 使用python绘制任意函数图像

    使用python绘制任意函数图像 ##原创文章不易,望点赞转发收藏三连 效果展示 y = (sinx)/x y = x4+x3+x^2+1 y=-x^2 文末还会展示一些实例图片 引入需要的库 我们使 ...

  4. htm+JS实现绘制数学函数图像

    htm+JS实现绘制数学函数图像 其中常用的函数可参见,JS中常用的Math方法 https://blog.51cto.com/u_10725738/5253407 https://www.jb51. ...

  5. 项目二:绘制数学函数图像

    在Python中,绘制函数图像一般要用到Numpy和 Matplotlib两个模块,这两个模块需要另外安装. numpy模块: 是一个科学计算包,其中包括很多数学函数,如三角函数.矩阵计算方法.矢量运 ...

  6. matplotlib绘制sin函数图像

    import matplotlib.pyplot as plt import numpy as np # 目标:绘制sin函数图像# 第一步:绘制x轴的刻度 x = np.linspace(0, np ...

  7. R 语言怎么保存工作目录到当前路径_【R语言基础】01.R语言软件环境搭建及常用操作...

    一.R语言简介 R语言是专业的统计分析软件,来自著名数据科学网站(http://www.kdnuggets.com/)发起的一个2019年统计分析和数据挖掘软件使用情况的调查结果: 表明R语言是该领域 ...

  8. c语言基础学python_D11——C语言基础学PYTHON

    C语言基础学习PYTHON--基础学习D11 20180908内容纲要: 1.RabbitMQ消息队列 (1)RabbitMQ安装 (2)Rabbits示例 模式一:fanout 模式二:direct ...

  9. python语言基础知识点总结_Python语言的12个基础知识点小结

    Python语言的12个基础知识点小结 python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(g ...

最新文章

  1. 1196: 数星星(二)(结构体专题)_福利:最新导数6大专题!高分段提分有困扰?听北大状元漫谈提分...
  2. 光立方原理讲解_一分钟讲解光模块原理与结构
  3. Apache POI和EasyExcel 第二集:Apache POI的基本Excel写入(分为03版的xls和07版的xlsx)
  4. 艾伟也谈项目管理,创业公司技术选型参考
  5. 图解Ollydbg简单逆向操作案例
  6. 订单生产计划表范本_生产计划管理与物料控制的实施步骤与要领
  7. TopN算法与排行榜
  8. windowsCE异常和中断服务程序初探
  9. P5170 【模板】类欧几里得算法
  10. JavaScript知识笔记(二)——事件
  11. 超详细教程:SpringBoot整合MybatisPlus
  12. 75-100-024-测试-MySQL 双表优化案例
  13. mysql事务日志备份_事务日志备份 (SQL Server)
  14. denyhosts、中文文档乱码、端口占用查询
  15. Java面试题:程序计数器为什么是私有的?
  16. 17-(基础入门篇)GPRS(Air202)串口
  17. 阿里巴巴面试算法题目:25匹赛马,5个跑道,也就是说每次有5匹马可以同时比赛。问最少比赛多少次可以知道跑得最快的5匹马
  18. linux0.11主存管理程序阅读注释笔记
  19. 【autojs】Auto.js Pro系统intent代码
  20. 当我们与某远程网络连接不上时,就需要跟踪路由查看,以便 了解在网络的什么位置出现了问题,满足该目的的命令是

热门文章

  1. 安全狗php站点404,开启安全狗响应内容保护导致404返回200状态码的解决办法
  2. Java开发进大厂面试必备技能,技术总监都拍手叫好
  3. linux 之 vmstat 命令
  4. 初步操作3dmax可编辑多边形建模-做一个杯子
  5. Jira使用浅谈篇一
  6. IDC X 得帆 |低代码PaaS驱动集团企业数字化创新
  7. 基于PLC系统的点焊机器人数据通讯采集方案
  8. RHCSA、RHCE、RHCA分别代表什么?
  9. 2.3 PPT :用logo设计封面
  10. 企业电子邮箱注册哪个好?如何注册电子邮箱?