利用绘图功能研究数据是一种直观有效的方法。 在R语言中,左图函数有两种,一种是高级左图函数,即所有的图函数都可以生成图,可以有坐标轴、图的说明文字和坐标轴等; 另一个是低级图函数。 横向作图函数,这类函数不能自己生成图,只能在高层左图函数生成的图的基础上增加新的图。
高级绘图函数
高级绘图函数包括 plot()、pairs()、coplot()、qqnorm()、qqline()、hist() 和 contour()
plot() 函数可以 绘制数据散点图、图形等,它有四种格式:
plot(x,y):其中x和y为向量,生成y关于x的散点图;
plot(x):其中x为时间序列,生成时间序列图形, 如果x是向量,生成x关于下标的散点图;
plot(f): f是一个因子,生成f的直方图;
plot(f,y): f是一个因子,y是一个向量, 生成关于 f 的 y 水平箱线图。
plot(df), plot(~expr), plot(y~expr):其中df为数据框,y为任意对象,expr为表达式 物体名称公式;
例:用四种不同配方的材料A1、A2、A3、A4生产元器件,实测使用寿命如下:画出四种不同的材料 配方材料寿命的箱线图并比较组件寿命是否有任何显着差异?
>y<-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)))
> 绘图(f,y)
> 年龄<-c(13,13,14,12,12,15,11, 15,14,14,14,15,12,13,12,16,12,11,15)
>高度<-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)
>体重<-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)
> df<-data.frame(年龄,身高,体重)
> plot(df)
>#画身高和年龄的散点图
> plot(df$Age df$Height)
>#绘制体重和年龄体重身高散点图
>attach(df)
>plot(Weight~Age Height)
R语言 提供了两个非常有用的函数来显示多元数据,一个是 pair 函数,另一个是 coplot() 函数。
-
pairs(x):当x为矩阵或数据框时,绘制矩阵各列的散点图;
p>
-
如果coplot(a~b|c)函数有三个或四个变量,散点图可以画得更细一些,其中a和b是数值向量,c是a 矢量或因子;<
> pairs(df)
>coplot(Weight~Height | Age)
dotchart(x ,…. ) 构造数据x的点图,点图中y轴为数据x的标记,x轴为数据x的值。
例如R语言提供了1940年弗吉尼亚州死亡率的VADeaths数据:
>dotchart(VADeaths,main=”Death Rates in Virginia – 1940″)
>dotchart(VADeaths,main=”Death Rates in Virginia – 1940″)
> dotchart(t(VADeaths),main=”弗吉尼亚州的死亡率 – 1940″)
image(x,y,z)
contour(x, y ,z)
persp(x,y,z)
其中x和y是数值向量,z是x和y对应的矩阵(z的行数 是x维度的,z的列数是y的维度),image()绘制三维图形的图像,contour()绘制三维图形的轮廓,persp()绘制 三维图形的曲面曲线。
> x<-seq(0,2800,400)
> y<-seq(0,2400,400)
> z<-扫描 ()
1: 1180 1320 1450 1420 1400 1300 700 900
9: 1230 1390 1500 1500 1400 900 1100 1060
17: 1270 1500 1200 1100 13 1450 1200 1150
25:1370 1500 1200 1100 1550 1600 1550 1380
33:1460 1500 1550 1550 1600 1600 1550 1600 1600 1600 1600 1600 1515100041:4800 1510 1510 1430 1430 1300 1200 1200
49: 1430 1450 1470 1320 1280 1200 1080 940
> Z<-矩阵(z,nrow = 8)
> 轮廓( x,y,Z,levels = seq( min(z),max(z),by=80))
> persp(x,y,Z)
在high的水平绘图函数中,可以加一些 命令来不断完善图片的内容,或者添加一些有用的指令。
add = TRUE表示在原图上绘制兔子,默认值为add=FALSE,即新图替换原图。
axes = FALSE表示绘制的图形没有坐标轴,默认值为axes = TRUE
log = “x”表示x轴的数据为对数 , log=”y”表示y轴数据取对数,log=”xy”表示x轴和y轴数据同时取对数。
xlab是x轴的描述,ylab是y轴的描述,main是图的描述,sub是子图的描述。
低级绘图函数
有时高级绘图函数不能完全满足绘图目标,需要低级绘图函数来补充绘图。 所有低级作图函数制作的图必须是在高级作图函数绘制的图的基础上增加的新图。
底层绘图函数有points()、lines()、text()、abline()、polygon()、legend()、title()、axis()等。
p>
points()加点函数是在已有图上加点,points(x,y)相当于plot(x,y)
lines()加线函数是Add lines到已有的图,lines(x,y)等同于plot(x,y,type=”l”)
text(x,y,labels,…) 函数是添加 图上的标签,其中 x 和 y 是数据向量,标签是描述。
abline()的作用是在图上加一条直线,abline(a,b)表示画一条直线,y=a bx; abline(h=y)表示通过所有点画一条水平直线;abline(v=y)表示通过所有点画一条垂直线; abline(lm.obj)的意思是绘制线性模型得到的线性方程。
> w<-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)
> h<-c(56.5,65.3,64.3,56.3,59.8,66.5,51.3,62.5,62.8,69.063.5,67.0,57.3,62.5,59.0)
> 图(w,h)
> lm.sol<-lm(w~h)
> abline(lm.sol)
可以使用polygon(x,y)函数 in中的数据(x,y)为坐标,所有的点依次连接起来绘制一个多边形。
title(main,sub)的作用是在图上加标题,可以加主标题也可以加副标题;
axis(side)表示加标记 在坐标轴上,说明或其他内容,side=1表示添加的内容放在图的底部,side=2表示添加的内容放在图的左侧,side=3表示添加的内容 放在图的最上方,side=4表示添加的内容放在图的右侧