16.1 R中的四种图形系统
如前所述,R中有四种主要的图形系统。其中基础图形系统由Ross Ihaka编写,每个R都默认安装,之前几章中的大部分图形都是依赖于基础图形函数创建的。
grid图形系统由Paul Murrell(2006)编写,可通过grid
包安装执行。grid图形提供了一种比标准图形系统更低水平的方法。用户可以在图形设备上随意创建矩形区域,在该区域定义坐标系统,然后使用一系列丰富的绘图基础单元来控制图形元素的摆放和外观。
grid图形的灵活性对于软件开发者是非常有价值的,但是grid
包没有提供生成统计图形以及完整绘图的函数。因此,数据分析师很少直接采用grid
包来分析数据。
lattice
包由Deepayan Sarkar(2008)编写,可绘制Cleveland(1985,1993)所描述的栅栏图形,具体描述可参见Trellis网站(http://netlib.bell-labs.com/cm/ms/departments/sia/project/trellis/)。基于grid
包,lattice
包对多元数据的可视化功能已经远超Cleveland的原始方法,它为R提供了一种全面的、创建统计图形的备选系统。
ggplot2
包由Hadley Wickham(2009a)编写,它提供了一种基于Wilkinson(2005)所描述的图形语法的图形系统,Wickham(2009b)还对该语法进行了扩展。ggplot2
包的目标是提供一个全面的、基于语法的、连贯一致的图形生成系统,允许用户创建新颖的、有创新性的数据可视化图形。
四种系统的载入方式有所不同,见表16-1。基础图形函数可自动调用,而grid
和lattice
函数的调用必须要加载相应的包(如library(lattice)
)。要调用ggplot2
函数需下载并安装该包(install.packages("ggplot2")
),第一次使用前还要进行加载(library(ggplot2)
)。
表16-1 图形系统的载入
系 统 | 基础安装中是否包含 | 是否需要显式加载 |
---|---|---|
base | 是 | 否 |
grid | 是 | 是 |
lattice | 是 | 是 |
ggplot2 | 否 | 是 |
由于我们主要关注实际的数据分析,所以本章并不会详细介绍grid
包。(如果你感兴趣,可参考Murrell博士的Grid网站www.stat.auckland.ac.nz/~paul/grid/grid.html,上面有该包的详细说明。)我们将探究的是lattice
和ggplot2
包,它们都可让你轻松创建出一些(用其他方法可能不太方便创建的)独特而实用的图形。