高级绘图命令
高级图形显示函数可以根据数据显示完整的图形(chart),包括坐标轴,标签、标题、序列等。如果你之前熟悉其他绘图库(比如JFreeChart,matplotlib等)的概念,可以很容易的掌握R中的绘图函数。
图表类型
R支持很多图表类型。在扩展包里面可能会提供更多的图表类型。下表给出R基本环境中支持的图表类型及其对应的绘图函数:
- plot(x) 以x的元素值为纵坐标、以序号为横坐标绘图
- plot(x,y) x(在x-轴上)与y(在y-轴上)的二元作图
- sunflowerplot(x,y)同上,但是以相似坐标的点作为花朵,其花瓣数目为点的个数
- pie(x)饼图
- boxplot(x)盒形图(“box-and-whiskers”)
- stripchart(x)把x的值画在一条线段上,样本量较小时可作为盒形图的替代
- coplot(x~y|z)关于z的每个数值(或数值区间)绘制x与y的二元图
- interaction.plot(f1, f2, y)如果f1和f2是因子,作y的均值图,以f1的不同值作为x轴, 而f2的不同值对应不同曲线;可以用选项fun指定y的其他的统计量(缺省计算均值,fun=mean)
- matplot(x,y)二元图,其中x的第一列对应y的第一列,x的第二列对应y的第二列,依次类推。
- dotchart(x)如果x是数据框,作Cleveland点图(逐行逐列累加图)
- fourfoldplot(x)用四个四分之一圆显示2X2列联表情况(x必须是dim=c(2,2,k)的数组,或者是dim=c(2,2)的矩阵,如果k=1)
- assocplot(x)Cohen–Friendly图,显示在二维列联表中行、列变量偏离独立性的程度
- mosaicplot(x)列联表的对数线性回归残差的马赛克图
- pairs(x)如果x是矩阵或是数据框,作x的各列之间的二元图
- plot.ts(x)如果x是类"ts"的对象,作x的时间序列曲线,x可以是多元的,但是序列必须有相同的频率和时间
- ts.plot(x)同上,但如果x是多元的,序列可有不同的时间但须有相同的频率
- hist(x)x的频率直方图
- barplot(x)x的值的条形图
- qqnorm(x)正态分位数-分位数图
- qqplot(x,y)y对x的分位数-分位数图
- contour(x,y,z)等高线图(画曲线时用内插补充空白的值)
- filled.contour(x,y,z)同上,等高线之间的区域是彩色的,并且绘制彩色对应的值的图例
- image(x,y,z)同上,但是实际数据大小用不同色彩表示
- persp(x,y,z)同上,但为透视图
- stars(x)如果x是矩阵或者数据框,用星形和线段画出
- symbols(x,y,...)在由x和y给定坐标画符号(圆,正方形,长方形,星,温度计式或者盒形图),符号的类型、大小、颜色等由另外的变量指定
- termplot(mod.obj)回归模型(mod.obj)的(偏)影响图
- heatmap(x)热度图
其他的包中可能也会提供额外的图表类型,比如:
quantmod包提供的K线图:chartSeries()
portfolio包提供的tree map(板块层级图):map.market(id, area, group, color)用矩形面积来表示数值,可用于分析磁盘空间占用
lattice包提供的平行坐标图:parallel(data)
- > x = rnorm(10)
- > y = rnorm(10)
- > plot(x,y)

绘图参数
很多时候,你可能需要调整图形的显示方式。R的绘图参数几乎可以定制图形的任何显示(如标题,坐标轴,颜色,字体等)。
R 拥有一个数目很大的图形参数列表。该列表包括控制线条样式,颜色,图形排列和文字对齐等方面的参数。
更改图形参数有两种方式,一种是直接在绘图函数中设置参数,这种方式只影响当前绘图函数,但是不是所有的参数都能够通过这种方式设置;另一种是通过par()函数设置,这种方式会影响当前绘图设备上的所有图形。
下面先看一个直接设置参数的例子:
- >plot(x,y,type="b",main="main title",sub='sub title',xlab="x axis",ylab='y axis',asp=0.2)

使用par()函数的例子:
- opar <- par()#备份原来的绘图参数
- par(bg="lightyellow", col.axis="blue", mar=c(4, 4, 2.5, 0.25))
- plot(x, y, xlab="Ten random values", ylab="Ten other values",
- xlim=c(-2, 2), ylim=c(-2, 2), pch=22, col="red", bg="yellow",
- bty="l", tcl=-.25, las=1, cex=1.5)
- par(opar)#恢复原来的绘图参数
通过?par可以查到所有参数的说明。下面列举最常用的一些参数:
adj控制关于文字的对齐方式,0是左对齐,0.5是居中对齐,1是右对齐,值> 1时对齐位置在文本右边的地方,取负值时对齐位置在文本左边的地方;如果给出两个值(例如c(0, 0)),第二个只控制关于文字基线的垂直调整
bg指定背景色(例如bg="red", bg="blue"; 用colors()可以显示657种可用的颜 色名)
bty控制图形边框形状,可用的值为: "o", "l", "7", "c", "u" 和"]" (边框和字符 的外表相像);如果bty="n"则不绘制边框
cex控制缺省状态下符号和文字大小的值;另外,cex.axis控制坐标轴刻度数字大小,cex.lab控制坐标轴标签文字大小,cex.main控制标题文字大小,cex.sub控制副标题文字大小
col控制符号的颜色;和cex类似,还可用:col.axis, col.lab, col.main, col.sub
font控制文字字体的整数(1: 正常,2: 斜体,3: 粗体,4: 粗斜体);和cex类似, 还可用: font.axis, font.lab, font.main, font.sub
las控制坐标轴刻度数字标记方向的整数(0: 平行于轴,1: 横排,2: 垂直于轴,3: 竖排)
lty控制连线的线型,可以是整数(1: 实线,2: 虚线,3: 点线,4: 点虚线,5: 长虚线,6: 双虚线),或者是不超过8个字符的字符串(字符为从"0"到"9"之间的数字)交替地指定线和空白的长度,单位为磅(points)或象素,例如lty="44"和lty=2效果相同
lwd控制连线宽度的数字
mar控制图形边空的有4个值的向量c(bottom, left, top, right), 缺省值 为c(5.1, 4.1, 4.1, 2.1)
mfcolc(nr,nc)的向量,分割绘图窗口为nr行nc列的矩阵布局,按列次序使用各子窗口
mfrow同上,但是按行次序使用各子窗口(参照 4.1.2)
pch控制符号的类型,可以是1到25的整数,也可以是""里的单个字符

ps控制文字大小的整数,单位为磅(points)
pty指定绘图区域类型的字符,"s": 正方形,"m":最大利用
tck指定轴上刻度长度的值,单位是百分比,以图形宽、高中最小一个作为基数; 如果tck=1则绘制grid
tcl同上,但以文本行高度为基数(缺省下tcl=-0.5)
xaxt如果xaxt="n"则设置x-轴但不显示(有助于和axis(side=1, ...)联合使用)
yaxt如果yaxt="n"则设置y-轴但不显示(有助于和axis(side=2, ...)联合使用)