一、函数曲线图
函数的曲线图是数学中研究函数的重要工具,利用R中的curve函数我们可以将函数曲线图绘制出来。curve函数的基本书写格式如下:
curve(
expr, #函数表达
from, to, #数值型,图像绘制的起始位置
n, #数值型,表示x的取值数量
add = FALSE, #逻辑值,为真时表示添加到原有绘图中
type = "l", #绘图类型,p点,l直线,o点加直线,b为点线,s为阶梯形
xname = "x", #x轴变量的名称
xlab, ylab, #x,y轴的标签名称
col #字符串向量,绘制曲线的颜色
xlim,ylim #x轴和y轴的范围
...)
这里我们来绘制一下一些基本函数的图像,采取默认的l绘图类型
curve(x**2,col='blue',ylim=c(-1,1),xlim=c(-5,5)) #绘制x**2的函数曲线图
绘制出的图形如下
如果我们在上述的基础上添加一条新的函数曲线,这时候我们就需要用到add参数
curve(sin(x),col='red',ylim=c(-1,1),xlim=c(-5,5),add=T) #添加sinx的函数曲线图
绘制出来的图形如下
当然这边只介绍了一种绘制方法,我们也可以利用plot函数来进行绘制,利用plot函数、自定义函数与R的控制结构可以实现更加复杂的函数的绘制。
二、散点图
散点图将观测数据以点的形式绘制在一个二维平面中,通过数据点的分布来展示两个或多个数值型变量之间的相关性特点。散点图可以分为简单散点图、气泡图、矩阵散点图等。这里利用《R语言数据挖掘》一书中所提供的森林气候状况数据进行分析。
(一)简单散点图
为了绘制简单的散点图,我们可以利用plot函数,plot函数的使用特别灵活,参数也特别多,这里需要用到的书写格式如下:
plot(x,y) #x为横坐标因素,y为纵坐标因素
其中x,y可以是取值于数据框的某一个域,x多作为自变量的因素,y多作为因变量的因素
x <- read.table('森林数据.txt',header=T) #读入文本数据并将数据框命名为x
plot(x$temp,x$RH) #绘制森林温度和相对湿度的散点图
下图为数据文件的部分数据,第一行为数据框的域名
代码运行后绘制的森林温度与相对湿度的散点图如下
既然绘制出了散点图,那么为散点图添加回归线可以帮助我们进行回归分析。我们可以利用loess函数,利用权部加权散点平滑法来得出回归方程,然后再利用lines函数,将回归方程添加到已有的散点图上,基本书写格式如下:
loess(因变量~自变量,数据框名)
lines(自变量,因变量)
#得出温度与相对湿度的回归方程,y输出是一个列表
y <- loess(RH~temp,x)
#将自变量temp按取值重新排序
z <- order(x$temp)
#为散点图添加回归曲线,fitted中存储了回归方程的相关参数
lines(x$temp[z],y$fitted[z],lwd=2,lty=1.2,col='red')
代码运行结果如下图
如果我们不对自变量temp按取值重新排序后就进行回归方程曲线的绘制,我们会得到很杂乱的数据集,就没有研究的效果了,不重新排序就绘制出的曲线如下图
#得出温度与相对湿度的回归方程,y输出是一个列表
y <- loess(RH~temp,x)
#为散点图添加回归曲线,fitted中存储了回归方程的相关参数
lines(x$temp,y$fitted,lwd=2,lty=1.2,col='red')
当绘制出来的散点图数据点过多过密的时候,可以对数据进行分箱处理,利用hexbin包中的hexbin函数可以处理高密度散点图,利用灰度值来表示每一个箱内数据点个数,基本书写格式如下:
hexbin(自变量,因变量,xbins=箱子数)
#调用hexbin包
library('hexbin')
#绘制高密度处理散点图
m <- hexbin(x$temp,x$RH,xbins=40)
plot(m,main='森林地区温度与相对湿度的高密度处理散点图',xlab='温度',ylab='相对湿度')
绘制出的图形如下所示
(二)三维散点图
在实际运用中,我们会希望同时研究两个变量对一个变量的影响,而为了绘制三维散点图我们就需要调用R的scatterplot3d包中的scatterplot3d函数,基本书写格式为:
scatterplot3d(x,y,z)
scatterplot3d(x$temp,x$RH,x$wind)
绘制出的三维散点图如下
(三)气泡图
气泡图是在绘制两个变量的散点图时,各个数据点的大小取决于第三个变量的取值,可以在三维散点图对第三个变量取值大小的体现不充分时使用,利用symbols函数可以进行气泡图的绘制,基本书写格式如下:
symbols(x,y,circle=z,inches=计量单位,fg=绘图颜色,bg=背景填充色)
symbols(x$temp,x$RH,circles=x$wind,inches=0.2,fg='yellow',bg='red',main='森林地区温度、相对湿度和风速的气泡图')
上述代码绘制出的气泡图如下所示
(四)矩阵散点图
矩阵散点图用来在一幅图上同时展示多个变量的相关性,绘制矩阵散点图的函数时pairs,基本书写格式如下:
pairs(~域名1+域名2+...+域名n,数据框名)
pairs(~temp+RH+wind,x) #绘制矩阵散点图
绘制出的矩阵散点图如下所示