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
Contents
1. plot()
直接使用plot() 函数绘制cars :
> plot(cars)
得到的图像如图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所示:
注意图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所示:
通过?plot 得到的文档中只包含了plot() 的一小部分参数,可以使用?par 来查看更多参数的使用方法。下面的指令将图像改为三角,颜色改变为红色,并限制x轴的范围为10到15,如图4所示:
> plot(cars, pch=2, col=2, xlim=c(10, 15))
2. boxplot()
boxplot() 函数可以用来绘制箱线图,它可以接受整个数据框作为参数,也接受使用~ 指示变量关系的表达式作为参数:
> boxplot(mtcars) > boxplot(formula = mpg ~ cyl, data = mtcars)
得到的图像如图5所示:
3. hist()
hist() 函数用于绘制直方图,在观察单个变量时很有用:
> hist(mtcars$mpg)
得到的图像如图6所示: