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

表达式 plot(pressure) 绘制了一幅反映压强和温度关系的散点图,图中包含了坐标轴,坐标轴标签以及矩形边框。调用text() 函数在图中坐标为(150,600)的位置添加文本标签。

这个例子只是R基础绘图的一个缩影,为了绘制图形并将其显示出来,用户需要调用一系列的图形函数,每一个图形函数或者能绘制出完整的图形,或者在已绘制图形的基础上添加新的元素。R的图形绘制模式遵循“画家模型”,即在当前一步绘制一个元素,在接下来的步骤中根据当前已绘制的图形添加元素。

图1.1 一幅简单的散点图,该图表示水银气压温度计中水银压强作为温度的函数随着温度变化的走势。这里用到了两个R表达式:一个表达式绘制基本图形,并包括了坐标轴、数据标签以及矩形框,另一个表达式在图形中添加了文本标签。

R 以及R的扩展包提供了许多绘图函数,因此,在描述单个绘图函数之前,1.1节展示了R所能绘制的各种各样的图形。这为R用户提供了如何利用R绘图系统绘制他们所希望得到的图形的思路。

第2节将简要介绍R中的绘图函数是如何组织的,这将为用户寻找完成特定任务的函数提供一些基本的思路。在本章的末尾,读者将会开始了解R的核心绘图函数的更多细节。

1.1 R 绘图示例

本节将通过一系列的示例方法来介绍R的绘图功能。生成这些图形的源代码不在本书中列出,读者可以到本书提到的网站下载这些源代码。这样做的原因是作者希望通过这些图形使读者对R 绘图系统有一个总体的印象。

1.1.1 标准绘图

R 提供了标准统计图形所囊括的通用工具,包括散点图、箱线图、直方图、条形图、饼图以及基本的三维图形。图1.2展示了一些例子。

图1.2 R绘制的一些标准图形:(顺序依次是从左到右和从上到下)散点图、直方图、条形图、箱线图、三维图以及一个饼图。在前4个例子中,在标准图形类型的基础上通过添加额外的标签、线段和坐标轴来实现对图形的扩充。

在R中,基本的绘图类型可以通过一个简单的函数调用绘制(例如pie(pie.sales),将会绘制一个饼图),但是这些图形也会被当作绘制更复杂图形的起点。例如,在图1.2的左上角的散点图中,一个文本标签被添加到图形区域内(这样就可以标明一个对象的识别编号),同时,在图形的右侧,添加了第二个y坐标轴。类似的,在直方图中,添加了一条曲线来对比理论正态分布与观测对象的差异。条形图中,在构成条形的每个元素中添加一个数字标签来表示每个元素对总的条形的贡献,此外,在箱线图中添加了图例来区分已绘制的不同数据对象。

在基本图形单元的基础上添加更多图形单元来绘制最后的完整图形是R的基本特性。图1.3展示了这种灵活性,在这幅图中,展示了如何通过统计散落在考古遗迹内破损碎片数量来对器皿的原始数量进行估计:根据遗迹上的碎片来度量遗迹的“完整性”;再根据观测到的“完整性”,通过“完整性”和“抽样比”的理论关系曲线来推测出“抽样比”的估计范围;另一条理论关系曲线则确定了给定一个抽样比所对应的原始容器数量。该图基于散点图,但是要求有额外的曲线、多边形、以及文字段,还要叠加多个坐标系统来绘制最后的结果。

图1.3 一幅用R绘制的自定义散点图。该图是从一个简单的散点图开始,通过添加一条额外的y轴和一系列额外的由线段、多边形以及文本标签所组成的集合而绘制完成的。

R绘图系统允许精确地控制绘图的底层部分,这样的特性使得R所绘制的图形能够创造很多引人注目的效果(会有从数据中丢失信息的风险)。图1.4则给出了这样一个例子,在这个例子中,只是用简单的条形图来反映老虎种群的数量,但是整个图形却被一只老虎头像的图片所修饰。

图1.4 一幅用R绘制的生动的条形图。该图通过在一个简单的条形图基础上,添加浅灰色背景图像并且将图像与每个条形重合的部分重新加亮来实现。

更多关于使用R绘图函数绘制标准图形的内容,见于第2章。第3章则阐述了更多在绘图时添加图形元素的方法。

1.1.2 框架图(Trellis plots)

除了传统的统计绘图,R 还通过Deepayan Sarkar开发的lattice包实现了绘制框架图的方法。框架图包含了大量由BillCleveland提出的设计原则,其目的是确保通过统计图形准确而忠实地传递背后数据的信息。在框架图中,这些原则贯穿于大量新型绘图类型以及默认颜色,符号形状以及线条样式的选择。此外,框架图还提供了一项特性:“条件多框图”,将数据按其他因子的水平分割成数据的不同子集,并逐子集绘制出一个多框统计图形。

图1.5展示了框架图的一个例子。采集到的数据表示的是在过去两年中,6个地点种植的不同品种的大麦的产量。该图由6个框图组成,每个框图对应一个地点。每个框图由一个表示不同品种产量的单点图组成,使用不同的符号来区分不同的年份,并且在框图上方用一个条带显示地点的名称。

图1.5 由lattice 包绘制的单点框架图。该图展示了大麦产量和大麦品系之间的关系,不同的单点图对应不同的试验地点,并且不同的图形符号对应不同年间采集到的数据。 该图是对Bill Cleveland 的“Visualizing Data”一书中的图1.1 做了小幅修改(重新绘制获得了Hobart 出版社的许可)。

更多关于框架图的介绍以及如何利用lattice包绘制框架图的内容见于本书的第4章。

1.1.3 绘图语法

Leland Wilkinson提出的绘图语法提供了另一个完全不同的绘图范式来绘制统计图形。绘制该种范式的图形已被 Hadley Wickham开发的ggplot2 包所实现。

应用此包的一个好处是,它使我们可以通过一个相对较小的基础图形元素集合绘制出大量不同种类的统计图形。此外,ggplot2 包还有一项类似于lattice包的多框架图的名为多面图的特性。

图1.6 展示了一幅用ggplot2绘制的图形示例。更多的关于ggplot2程序包的内容参见本书第5章。

图1.6 一幅由ggplot2绘制的图形。该图形反映了高速公路上每英里所耗油量(以加仑为单位)和发动机排量(以升为单位)之间的关系。图中所用到的数据基于发动机中气缸数目的不同被分成了四组,不同的绘图符号对应于不同的分组,并且该图同时展示了对每一组数据分别做线性拟合所得到的结果。

1.1.4 绘制专门的图形

除了提供了各式各样用途广泛的绘制完整图形的函数,R还提供绘制单一图形单元的函数,例如线段、文本、长方形以及多边形。 这为用户定义自己的函数去创建更多专有的图形提供了便利。这里有许多为实现特定目的开发的R扩展包的例子,图1.7 就展示了使用R及R的扩展包 maps、mapdata以及mapproj绘制的新西兰地图。图1.8 展示了另一个例子:使用quantmod包绘制的金融图表。在本书的第4部分会提到许多用于绘制不同图形的程序包及函数。第14章会介绍更多关于R绘制地图的内容。

图1.7 一幅使用maps 包、mapdata 包和 mapproj 包绘制的新西兰地图。图中新西兰的地图是通过一系列的多边形组合绘制的,图中还添加了文本和一个箭头,此外还添加了一个数据点来标明奥克兰在地图中的位置,奥克兰同时也是R的诞生地。在图右下方,又额外绘制了一副世界地图,同时用一个圆圈帮助人们定位新西兰在世界地图中的位置。

在某些情况下,研究人员会突发奇想创建一个适用于他们所研究数据的全新类型的图形。

R并非是唯一一个试验新式图形的平台,但是它非常适合研究者将自己的最新绘图技术分享给其他人。图1.9 展示了一个新颖的决策树图,可以把在每一个终端节点上的相关变量的分布可视化(绘制采用了party包)。

关于如何应用传统绘图函数从一个空白页生成图形的内容见于第3章。 grid 图形包提供了更加强大而灵活的工具去创建定制图形(见于第6章与第7章),特别是创建供他人使用的绘图函数(见第8章)。

1.1.5 绘图背景综述

除了绘制传统意义上的统计图形,R 绘图功能的通用性和灵活性使得它还能够绘制出更丰富多彩的图像,即使图像所展示出来的信息通常被认为是某些特殊的数据类型。一个很好的典型示例就是R将文本以表格样式组织起来作为图形元素嵌入到图形中的能力,图1.10所示是以标准形式展示了一组元分析的结果。

R还可以绘制那些用于帮助以可视化方式演示重要概念和教学要点的图形。图1.11 (由Arden Miller提供)给出了两个例子,这两个例子展示了F-检验的几何表示的扩展。一个更少见的绘图示例是图1.12展示的乐谱图(由Steven Miller 提供)。R 甚至被用来绘制如图1.13所展示的信息图。当然这些例子所展示出来的图形不可能通过调用单一的图形函数来绘制,而是需要读者付出更多的努力才能最终实现。

以上这些例子仅仅是R(以及R 的聪明狂热的用户)所拥有的强大绘图能力的小小展示。这些例子凸显出R绘图系统不仅只是用来绘制被认为是只需付出少量努力就可以实现的标准绘图类型,还提供了强大的工具用于绘制包括被认为是通常意义上的统计图形在内的标准绘图类型以外更加广泛的终极图形。

R绘图库网站(R Graphic Gallery web site) 提供了更多种类的绘图示例,感兴趣的读者也可以浏览R 绘图手册网站(R Graphic Manual web site)。 同时,R 维基 (R Wiki) 也有专门章节讲述了R绘图的技巧与窍门,并附带了大量的示例。

时间: 2017-05-02
Tags: 函数, 表达式

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

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

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

《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版)》一2.2 plot()函数

2.2 plot()函数 在传统绘图系统中最重要的高级函数是plot()函数.在许多情况下,该函数提供了在R中绘制完整图形最简单的方法. plot() 函数中的第一个参数是需要绘图的数据,指定数据的方式可以很灵活.例如,下面代码中每一个plot()函数的调用都被用来绘制如图1.1的同一幅散点图(只是在坐标轴标签的设置上有轻微变动).在第一种情况下,所有的绘图数据都被包含在一个简单的数据框内.在第二种情况下,两个不同的变量分别被设置为x参数与y参数.在第三种情况下,绘图数据被设置成一个关系式的形式

《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,是用来控制是

Win7系统原版安装版右下角输入法图标不见了?

  Win7系统原版安装版右下角输入法图标不见了?           步骤: 1.按下"Win+R"组合键呼出运行,在框中输入"ctfmon",按下回车键; 2.点击开菜单,点击"控制面板",在控制面板的查看方式修改为"大图标",然后点击"区域和语言"; 3.在"区域和语言"窗口中点击"键盘和语言"选项卡,然后点击"更改键盘"; 4.在"

《AutoCAD全套园林图纸绘制自学手册》一2.2 配置绘图系统

2.2 配置绘图系统 AutoCAD全套园林图纸绘制自学手册 由于每台计算机所使用的显示器.输入设备和输出设备的类型不同,用户喜好的风格及计算机的目录设置也是不同的,所以每台计算机都是独特的.一般来讲,使用AutoCAD 2013的默认配置就可以绘图,但为了使用用户的定点设备或打印机,以及为提高绘图的效率,AutoCAD推荐用户在开始作图前先进行必要的配置. [执行方式] 命令行:preferences 菜单:工具→选项 右键菜单:选项(单击鼠标右键,系统打开右键菜单,其中包括一些最常用的命令,