《R绘图系统(第2版)》一2.2 plot()函数

2.2 plot()函数

在传统绘图系统中最重要的高级函数是plot()函数。在许多情况下,该函数提供了在R中绘制完整图形最简单的方法。

plot() 函数中的第一个参数是需要绘图的数据,指定数据的方式可以很灵活。例如,下面代码中每一个plot()函数的调用都被用来绘制如图1.1的同一幅散点图(只是在坐标轴标签的设置上有轻微变动)。在第一种情况下,所有的绘图数据都被包含在一个简单的数据框内。在第二种情况下,两个不同的变量分别被设置为x参数与y参数。在第三种情况下,绘图数据被设置成一个关系式的形式 y~x,同时将包含关系式中所含变量的数据框作为参数传入函数。

> plot(pressure)
> plot(pressure$temperature,pressure$pressure)
> plot(pressure~temperature,data=pressure)

传统绘图系统并不能区分不同绘图样式,例如只在每一个(x,y)坐标位置绘制数据符号的散点图和绘制一个连接每一个(x,y)坐标位置的直线段的散点图(线图),之间的主要差异。这些样式都是由基本绘图函数plot()中一个名为 type 的参数控制的变量。下面的代码通过设定 type 参数不同取值来绘制4幅不同的图像,来演示type 参数如何控制绘图样式(见图2.1)。

图2.1 散点图的4种变化。在每一个例子中,绘图都是通过调用plot()函数并使用相同的数据作为参数实现的;仅有的变化是对type参数取了不同的值。在左上方的示例图中,type="p"以绘制散点(数据符号),在右上方的示例图中,type="l"以绘制折线,在左下方的示例图中,type="b"以同时绘制散点和折线,在右下方的示例图中,type="h"以绘制类似直方图的垂直线段。

> y<-rnorm(20)
> plot(y,type="p")
> plot(y,type="l")
> plot(y,type="b")
> plot(y,type="h")

同样的,传统绘图函数也不能够区分一个简单数据集所绘制的图形与一个包含多项序列的复杂数据集所绘制的图形。更多数据项可以通过使用低级函数来添加到已绘制的图形中,例如使用points()函数和lines()函数(见3.4.1小节;同时也见于2.5节中关于函数matplot()的介绍)。

事实上,plot()函数是一个泛型函数。对这句话的解释前面已经做了描述;plot()函数能够接受类型相同但格式被不同的数据作为参数(当然这仍将输出相同的结果)。但是,plot()函数作为泛型函数的事实也意味着,如果给plot()函数传入不同类型的数据,则会绘制出不同类型的图形。例如,如果传给x变量的参数是一个因子,plot()函数会默认绘制一幅箱线图,而不是散点图。另一个例子则如下面的代码所示。该例中,通过调用lm() 函数创建了一个"lm"对象。当把该对象传递给plot()函数时,plot()函数会针对"lm"对象调用特定的绘图方式绘制回归诊断图(见图2.2)。[1]

图2.2 绘制"lm"对象。在plot()函数中,有一类专门用来绘制"lm"对象的方法,能够根据线性模型分析所得到的结果绘制出一系列回归诊断图。

> lmfit<- lm(sr~pop15+pop75+dpi+ddpi,
        data=LifeCycleSavings)
> plot(lmfit)

如果想了解更多关于plot()函数中"lm"绘图方法的内容,输入help(plot.lm)。

在大多数情况下,绘图扩展包中提供的新型绘图功能都是通过在plot()函数中定义一个新的绘图方法实现的。例如,cluster包提供给plot()函数一个方法用于创建表示自底向上聚类过程结果的图像(对应于一个agnes对象)。该方法能够绘制一个特殊的条幅图和一个反映数据结构的树形图(见下面的代码以及图2.3)。第一部分的代码用来生成数据以及创建一个agnes对象;后一部分的代码用来绘制agnes对象的图形。

图2.3 绘制"agnes"对象。在plot()函数中,有一类专门用来绘制"agnes"对象的方法,能够绘制合成聚类分析所产生结果的图形。

> subset<-sample(1:150,20)
> cS<-as.character(Sp<-iris$Species[subset])
> cS[Sp=="setosa"]<-"S"
> cS[Sp=="versicolor"]<-"V"
> cS[Sp=="virginica"]<-"g"
> ai <- agnes(iris[subset,1:4])

> plot(ai,labels=cS)

简单调用函数plot(x),其中x是一个包含了需要可视化数据的R对象,通常就能以最简单的方式获取对数据的一个初步认知。

接下来的几节简要介绍了使用plot()函数或者graphics包中其他高级函数所能够绘制的主要图形类型。本章接近结尾的部分将讨论这些函数中能够控制图形详细内容的重要参数(见2.6节)。

本书第4部分将会介绍许多R绘图扩展包中绘制其他类型图形的高级函数。[2]

时间: 2017-05-02

《R绘图系统(第2版)》一2.2 plot()函数的相关文章

《R绘图系统(第2版)》一第1章 R绘图简介1.1 R 绘图示例

第1章 R绘图简介 R绘图系统(第2版) 章节预览 本章介绍了关于R绘图入门最基本信息.首先,这里用一个3行的代码示例阐述如何用最基本的步骤去绘制一个图形.然后用一系列的示例展示R能够生成的图像种类.最后,用一节的内容介绍R如何组织其图形库,帮助读者寻找特定的函数. 下面这段代码展示了如何用R去绘制一幅图形(见图1.1) > plot(pressure) > text(150,600, "Pressure (mm Hg)\nversus\nTemperature (Celsius)&

《R绘图系统(第2版)》一第2章 传统绘图系统的简单用法2.1 传统绘图模型

第2章 传统绘图系统的简单用法 R绘图系统(第2版)章节预览 本章介绍了传统绘图系统中主要的高级绘图函数的用法.这些函数用来绘制完整的图形,例如散点图.直方图以及箱线图.本章介绍了这些标准绘图函数的名称,调用这些函数的标准方法,以及一些能够丰富图形内容的标准参数.上面介绍的部分参数的内容在扩展绘图包中的高级绘图函数中也是同样适用的.这一章的目的是介绍传统绘图系统中可以用到的一系列绘图函数的基本知识,为用户指明重点,并了解使用它们的标准方式. 构成传统绘图系统的绘图函数是由一个名为graphics

《R绘图系统(第2版)》一导读

前 言 R绘图系统(第2版)作为一种流行的开源软件工具,R常用于统计分析和统计图形的绘制.在本书中,作者将聚焦于R 所提供的强大的绘图库,以绘制达到出版物水平的图表以及各类图形. 目 录 第1章 R绘图简介1.1 R 绘图示例1.2 R绘图系统的结构第1部分 传统绘图系统 第2章 传统绘图系统的简单用法2.1 传统绘图模型2.2 plot()函数2.3 单变量绘图2.4 双变量绘图2.5 多变量绘图2.6 绘图函数的参数2.7 专业绘图2.8 交互式绘图第3章 定制传统绘图第2部分 GRID绘图

《R绘图系统(第2版)》一1.2 R绘图系统的结构

1.2 R绘图系统的结构 这一节简要阐述了R 绘图函数库中的函数是如何组织的,以使用户能够了解怎样开始寻找一个特定的函数. 在R绘图工具库中占据核心地位的是grDevices包,该包同时也被称为绘图引擎.grDevices包提供了一系列R中的基本绘图函数,如选择颜色和字体以及选择绘图输出格式.尽管几乎所有的R绘图应用都使用了grDevices包,这其中绝大部分只需要通过学习一些基本知识即可掌握,所以关于该包中绘图函数的细节被安排在本书第3部分介绍. 在绘图引擎的基础上直接搭建了两个包:grap

《R绘图系统(第2版)》一2.8 交互式绘图

2.8 交互式绘图 传统绘图系统的优点是能够绘制统计图形,但是与输出图形交互的能力有限. locator()函数允许用户在图形上点击并返回一个发生鼠标点击事件位置的坐标.同时该函数还有在点击位置绘制数据符号以及在两处点击区域之间绘制线段的能力. identify()函数能够在一个已绘制的数据符号旁添加标签.最靠近鼠标点击位置的数据点会被标注. 此外还有一个用途更广泛的getGraphicsEvent()函数,该函数允许用户捕捉鼠标和键盘的触发事件(鼠标按键,鼠标释放,鼠标拖动,键盘击键).这就

《R绘图系统(第2版)》一2.5 多变量绘图

2.5 多变量绘图 表2.3和图2.6 展示了可以用于绘制多变量图形的传统绘图函数. 图2.6 用于绘制多个变量的高级绘图函数.在所有示例图中,当某一个函数可以绘制超过一种数据类型时,示例中所绘制图形对应的数据类型将被标记出来(用灰体). 给定一个数据框,其所有列都是数值类型,plot()函数在接受该数据框作为参数后会绘制一个散点图矩阵,数据框内每一对相互对应的变量都被绘制成矩阵的一幅散点图. pairs()函数也可以实现相同的目的,但是有一点区别是pairs()也可以接受矩阵形式的参数. 当

《R绘图系统(第2版)》一2.6 绘图函数的参数

2.6 绘图函数的参数 在通常情况下,特别是绘制用于发表出版的绘图时,通过简单调用一个高级绘图函数绘制的图像并不能够满足我们的所有需求.R提供了许多方式可以修改绘图函数的输出,并且本书第3章有关于这个话题的详细谈论.这一节仅仅探讨一下通过指定高级绘图函数的参数来改进输出图形的可能性. 对于给定的某个函数其大多数参数是特定的.例如,在boxplot()函数的所有参数中有两个参数:width 和 boxwex,用于控制图形中箱子的宽度,而在barplot()函数中有一个参数horiz,是用来控制是

《R绘图系统(第2版)》一2.4 双变量绘图

2.4 双变量绘图 表2.2和图2.5 展示了可以用于绘制双变量图形的传统绘图函数. 图2.5 用于绘制双变量的高级绘图函数.在所有示例图中,当某一个函数可以绘制超过一种数据类型时,示例中所绘制图形对应的数据类型将被标记出来(用灰体). plot()函数也可以接受不同格式的两个变量作为参数:一对数值向量:一个数值向量和一个因子:两个因子:一个包含两个向量或者因子的列表(以x和y命名):一个二维表:一个有两列的矩阵或者是数据框(第一列被认为是x参数):或者是一个形如y~x的关系式. 如果两个变量

《R绘图系统(第2版)》一2.3 单变量绘图

2.3 单变量绘图 表2.1和图2.4 展示了基于单变量绘制图形的传统绘图函数. 图2.4 用于绘制单变量的高级绘图函数.在所有示例图中,当某一个函数可以绘制超过一种数据类型时,示例中所绘制图形对应的数据类型将被标记出来(用灰体). plot()函数可以接受一个单独的数值向量,或者是一个因子,或者是一个一维表(一个按因子计数的表).赋予plot()函数一个数值向量可以创建一幅散点图,散点图中向量的每一个数值将作为其对应序数的函数,而无论是因子还是表都将绘制一幅条形图,条形图的每一个条形都代表因