R语言基础之用R语言绘制各类函数图像

目录

常用高级画图函数 

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)

《R语言基础之用R语言绘制各类函数图像》

如果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)

《R语言基础之用R语言绘制各类函数图像》

例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)

结果图:

《R语言基础之用R语言绘制各类函数图像》

例3

画出标准正态分布图

代码:

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

结果图:

《R语言基础之用R语言绘制各类函数图像》

例4

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

代码:

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

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

结果图:

《R语言基础之用R语言绘制各类函数图像》

例5

画箱线图——利用四种不同配方的材料A1,A2,A3,A4生产出来的元件,测得其使用寿命如下,绘出四种不同配方材料寿命的箱线图,并分析。
《R语言基础之用R语言绘制各类函数图像》

代码:

> 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)

结果图:

《R语言基础之用R语言绘制各类函数图像》

分析:

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

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

type:规定绘图方式。

《R语言基础之用R语言绘制各类函数图像》

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)

《R语言基础之用R语言绘制各类函数图像》

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)

《R语言基础之用R语言绘制各类函数图像》

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

qqnorm( )

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

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

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

《R语言基础之用R语言绘制各类函数图像》
此直线的斜率是标准差,截距是均值。所以,可以利用正态QQ图做直观的正态性检验。若QQ图上的点近似的在一条直线附近,可以认为样本数据来自正态分布总体。

例8

生成向量x的正态积分图 

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

《R语言基础之用R语言绘制各类函数图像》

例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)

《R语言基础之用R语言绘制各类函数图像》

常用低级画图函数

points()

在当前图形上添加点。

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

例1

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

《R语言基础之用R语言绘制各类函数图像》

lines()

在当前图形上添加线。

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

例2

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

《R语言基础之用R语言绘制各类函数图像》

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)

《R语言基础之用R语言绘制各类函数图像》

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

《R语言基础之用R语言绘制各类函数图像》

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

《R语言基础之用R语言绘制各类函数图像》

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语言绘制各类函数图像》

    原文作者:咕噜oo
    原文地址: https://blog.csdn.net/qq_44081582/article/details/109150245
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞