中级绘图

散点图:散点图一般用来描述两个连续变量间的关系,在R中,创建散点图的基础函数为plot(x,y),其中,x和y是数值型向量,代表着图形中(x,y)点。

R语言close函数 r语言的loess函数介绍_3d

R语言close函数 r语言的loess函数介绍_拟合_02

abline()函数用来添加最佳拟合的线性直线,而lowess()函数用来添加一条平滑的曲线

R有两个平滑曲线拟合函数,lowess()和loess(),loess()是基于lowess()表达式版本的更新和更强大的拟合函数。

散点图矩阵:函数pairs()函数可以创建基础的散点图矩阵,如下便创建了一个散点图矩阵

pairs(~mpg+disp+drat+wt,data=mtcars,main=”Basic Scatter Plot Matrix”)

R语言close函数 r语言的loess函数介绍_拟合_03

其中,上图标志中,变量和变量行列交叉处的图形表示该处的二者关系,比如,mpg和disp二者的散点图关系就如第二行第一列所示,需要注意的是,mpg、disp、drat和wt这四个变量组成的对角线的上三角和下三角散点图是相同的,因而,只需要看一个三角即可。

另外,使用car包中的scatterplotMatrix()函数可以生成散点图矩阵,例如:

R语言close函数 r语言的loess函数介绍_图形_04

R语言close函数 r语言的loess函数介绍_图形_05

R语言close函数 r语言的loess函数介绍_r语言_06

考虑四个变量的相关性:

R语言close函数 r语言的loess函数介绍_R语言close函数_07

可以看出,其中wt和disp相关性最高,为0.8879799

高密度散点图:

当数据重叠很严重的时候,用散点图来观察变量的关系就显得“力不从心”,如下是一个例子:

R语言close函数 r语言的loess函数介绍_r语言_08

R语言close函数 r语言的loess函数介绍_图形_09

这些点都因重叠而无法辨认哪个地方的散点多,哪个地方少,所以,R提供了一些办法,通过使用封箱,颜色和透明度来指明图中任意点上的重叠点的数目。

smoothScatter()函数可以利用核密度估计生成用颜色密度来表示点分布的散点图,如下:

with(mydata,smoothScatter(x,y,main=”Scatterplot Colored By Smooth Densities”))

R语言close函数 r语言的loess函数介绍_R语言close函数_10


三维散点图:


散点图和散点矩阵展示的都是变量间的二元关系,假如对三个定量变量的交互关系进行可视化,一般需要用到三维散点图


三维散点图,一般可以用scatterplot3d()函数来绘制他们之间的关系,格式为:scatterplot3d(x,y,z),其中x为水平轴,y为竖直轴,z为透视轴


示例:


R语言close函数 r语言的loess函数介绍_拟合_11


R语言close函数 r语言的loess函数介绍_图形_12


还可以用一个曲面去拟合图中的所有点,该函数也有多种参数,可以进行颜色,垂直线的添加:


R语言close函数 r语言的loess函数介绍_3d_13


R语言close函数 r语言的loess函数介绍_R语言close函数_14


旋转三维散点图:可以通过创建一个交互式的散点图来多个角度的去观察数据,可以使用鼠标对图形进行旋转


可以使用rgl包中的plot3d()函数来创建可交互式的三维散点图


函数的格式为:plot3d(x,y,z)


R语言close函数 r语言的loess函数介绍_图形_15


R语言close函数 r语言的loess函数介绍_r语言_16


R语言close函数 r语言的loess函数介绍_R语言close函数_17


R语言close函数 r语言的loess函数介绍_3d_18


气泡图:先创建一个散点图,然后用点的大小来表示第三个变量的值,称之为气泡图,用函数symbols()函数来创建气泡图,可以通过参数来设置最终气泡的样式,比如为圆圈,心性,温度计等,以绘制圆圈图为例:


symbols(x,y,circle=radius)


其中,x和y还有radius是需要设定的向量,分别表示为x,y坐标和圆圈半径


R语言close函数 r语言的loess函数介绍_R语言close函数_19


R语言close函数 r语言的loess函数介绍_拟合_20


折线图,如果将散点图上所有的点从左往右依次连接起来,就会得到一个折线图:


折线图函数,plot(x,y,type=)或者lines(x,y,type=),其中x和y是要连接(x,y)点的数值型向量,其中参数type=,后面参数如下:


R语言close函数 r语言的loess函数介绍_拟合_21


具体情形如下:


R语言close函数 r语言的loess函数介绍_图形_22


需要注意的是,plot函数一般用于生成新图,而lines函数一般用来在图中添加新信息,并不能自己生成图形


一个小示例如下:


R语言close函数 r语言的loess函数介绍_3d_23


R语言close函数 r语言的loess函数介绍_拟合_24


相关图:被考察的变量与某些变量的相关性强弱,可以用相关图来展示:


R语言close函数 r语言的loess函数介绍_图形_25


R语言close函数 r语言的loess函数介绍_3d_26


R语言close函数 r语言的loess函数介绍_3d_27