R Cheat Sheet (15): Base Graphics

相比于其他编程语言,R语言的最大优势之一是它能够很容易地绘制出版物级别的图像。本节的主要内容是R中的基础绘图,不包含如lattice、ggplot2和ggvis等更高级的绘图包。

首先载入cars 数据框,并查看其文档:

> data(cars)
> ?cars

cars 中只有两个变量,速度speed 和刹车距离dist ,这些数据是19世纪20年代记录的。

在开始绘图前,首先查看一下数据,对数据有一个大致的了解,是一个好习惯。R中相关的函数有dim() ,names() , head() , tail() , summary() 等:

> head(cars)
  speed dist
1     4    2
2     4   10
3     7    4
4     7   22
5     8   16
6     9   10

1. plot()

直接使用plot() 函数绘制cars :

> plot(cars)

得到的图像如图1所示:

图1

图1

在执行plot(cars) 时,R注意到cars 中有两列数据,于是假设你想要将两列数据分别表示于两个坐标轴上;由于我们并没有提供任何标签(label)和轴线(axis),R默认使用了变量名来作为两个坐标轴的标签,并自动为坐标轴加上了对应的刻度;plot() 函数的其余参数都使用了默认值。这里的plot是散点图(scatterplot)的缩写。

plot() 函数的签名为:

plot(x, y, ...)

其中最重要的两个参数是x 和y ,也就是用来画图的两个变量,可以手动指定这两个参数:

> plot(x=cars$speed, y=cars$dist)

得到的图像如图2所示:

图2

图2

注意图1和图2在坐标轴的标签上略有不同,图2中直接使用了传入的参数名来作为标签。调用plot() 的方法有很多,使用plot(dist ~ speed, cars) 也可以得到跟图1和图2类似的结果。

可以通过xlab 和ylab 参数指定坐标轴的标签,通过main 参数指定图像的标题:

> plot(x=cars$speed, y=cars$dist, xlab="Speed", ylab="Stopping Distance")

得到的图像如图3所示:

图3

图3

通过?plot 得到的文档中只包含了plot() 的一小部分参数,可以使用?par 来查看更多参数的使用方法。下面的指令将图像改为三角,颜色改变为红色,并限制x轴的范围为10到15,如图4所示:

> plot(cars, pch=2, col=2, xlim=c(10, 15))

图4

图4

2. boxplot()

boxplot() 函数可以用来绘制箱线图,它可以接受整个数据框作为参数,也接受使用~ 指示变量关系的表达式作为参数:

> boxplot(mtcars)
> boxplot(formula = mpg ~ cyl, data = mtcars)

得到的图像如图5所示:

图5

图5

3. hist()

hist() 函数用于绘制直方图,在观察单个变量时很有用:

> hist(mtcars$mpg)

得到的图像如图6所示:

图6

图6