高级图形函数的常用选项
高级图形函数有一些共同的选项,作为函数的可选参数(自变量)。例如:
> plot(x)
> plot(x, main="Graph of x")
其中的
main
就是一个可选参数,用来指定图形的标题。没有此选项时图形就没有标题。这样的选项还有:
add=T
|
使函数向低级图形函数那样不是开始一个新图形而是在原图基础上添加。
|
axes=F
|
暂不画坐标轴,随后可以用
axis()
函数更精确地规定坐标轴的画法。缺省值是
axes=T
,即有坐标轴。
|
log="x" log="y"
log="xy"
|
把
x
轴,
y
轴或两个坐标轴用对数刻度绘制。
|
type=
type="p" type="l" type="b" type="o" type="h" type="s" type="S" type="n" |
规定绘图方式:
绘点 画线 绘点并在中间用线连接 绘点并画线穿过各点 从点到横轴画垂线 阶梯函数;左连续 阶梯函数;右连续 不画任何点、线,但仍画坐标轴并建立坐标系,适用于后面用低级图形函数作图。 |
xlab="
字符串" ylab="字符串" main="字符串"
sub="
字符串
"
|
定义x轴和y轴的标签。缺省时使用对象名。 图形的标题。
图形的小标题,用较小字体画在
x
轴下方。
|
低级图形函数
高级图形函数可以迅速简便地绘制常见类型的图形,但是,某些情况下你可能希望绘制一些有特殊要求的图形。比如,你希望坐标轴按照自己的设计绘制,在已有的图上增加另一组数据,在图中加入一行文本注释,绘出多个曲线代表的数据的标签,等等。低级图形函数让你在已有的图的基础上进行添加。
常用的低级图形函数罗列如下:
points(x,y)
lines(x,y)
|
在当前图形上叠加一组点或线。可以使用
plot()
的
type=
参数来指定绘制方法,缺省时
points()
画点,
lines()
画线。
|
text(x,y, labels, ...)
|
在由坐标
x
和
y
给出的位置标出由
labels
指定的字符串。
labels
可以是数值型或字符型的向量,
labels
在x,y处标出。
|
abline(a, b) abline(h=y) abline(v=x)
abline( lm.obj)
|
在当前图形上画一条直线。两个参数
a, b
分布给出截距和斜率。指定
h=
参数时绘制水平线,指定
v=
参数时绘制垂直线。以一个最小二乘拟合结果
lm.obj
作为参数时由
lm.obj
的
$coefficients
成员给出直线的截距和斜率。
|
polygon(x, y, ...)
|
以由向量
x
给出的横坐标和向量
y
给出的纵坐标为顶点绘制多边形。可以用
col=
参数指定一个颜色填充多边形内部。
|
legend(x, y, legend, ...)
legend(, angle=v) legend(, density=v) legend( , fill=v) legend(, col=v) legend(, lty=v) legend(, pch=v) legend(, marks=v)
|
legend
函数用来在当前图形的指定坐标位置绘制图例。图例的说明文字由向量
legend
提供。至少下面的
v
值要给出以确定要对什么图例进行说明,
v
是长度与
legend
相同的向量。
angle
参数指定几种阴影斜角。 density参数指定几种阴影密度。 fill参数指定几种填充颜色。 col参数指定几种颜色。 lty参数指定几种线型。 pch参数指定几种散点符号。为字符型向量。
marks
参数也指定几种散点符号,但使用散点符号数值代号,为数值型向量。
|
title(main, sub)
|
绘制由
main
指定的标题和由
sub
指定的小标题。
|
axis(side, ...)
|
绘制一条坐标轴。这之前的绘图函数必须已经用
axes=F
选项抑制了自动的坐标轴。参数
side
指定在哪一边绘制坐标轴,取值为
1
到
4
,
1
为下边,然后逆时针数。可以用
at=
参数指定刻度位置,用
labels
参数指定刻度处的标签。
|
低级图形函数一般需要指定位置信息,其中的坐标指的是所谓用户坐标,即前面的高级图形函数所建立的坐标系中的坐标。坐标可以用两个向量
x
和
y
给出,也可以由一个两列的矩阵给出。如果交互作图可以用下面介绍的
locator()
函数来交互地从图形中直接输入坐标位置。
一、图形元素
图形由点、线、文本、多边形等元素构成。下列的图形参数用来控制图形元素的绘制细节:
pch="+"
pch=4
|
指定用于绘制散点的符号。绘制的点往往略高于或低于指定的坐标位置,只有
pch="."
没有这个问题。
如果
pch
的值为从
0
到
18
之间的一个数字,将使用特殊的绘点符号。下例可以显示所有特殊绘点符号:
> plot(c(0, 100), c(0, 100), type="n", axes=F, xlab='', ylab='') > legend(10,90, as.character(0:9), pch=0:9) > legend(50,90, as.character(10:18), pch=10:18)
|
lty=2
|
指定画线用的线型。缺省值
lty=1
是实线。从
2
开始是各种虚线。
|
lwd=2
|
指定线粗细,以标准线粗细为单位。这个参数影响数据曲线的线宽以及坐标轴的线宽。下例绘制正弦曲线图:
> oldpar <- par(lwd=2) > x <- (0:100)/100*2*pi > plot(x, sin(x), type="l", axes=F) > abline(h=0) > abline(v=0) > par(oldpar)
|
col=2
|
指定颜色,可应用于绘点、线、文本、填充区域、图象。颜色值也可以用象
"red"
,
"blue"
这样的颜色名指定。
|
font=2
|
用来指定字体的整数。一般
font=1
是正体,
2
是
黑体,
3
是
斜体,
4
是
黑斜体。
|
font.axis font.lab font.main
font.sub
|
分别用来指定坐标刻度、坐标轴标签、标题、小标题所用的字体。
|
adj=-0.1
|
指定文本相对于给定坐标的对齐方式。取
0
表示左对齐,取
1
表示右对齐,取
0.5
表示居中。此参数的值实际代表的是出现在给定坐标左边的文本的比例,所以
adj=-0.1
的效果是文本出现在给定坐标位置的右边并空出相当于文本
10%
长度的距离。
|
cex=1.5
|
指定字符放大倍数。
|
二、坐标轴与坐标刻度
许多高级图形带有坐标轴,还可以先不画坐标轴然后用
axis()
单独加。函数
box()
用来画坐标区域四周的框线。
坐标轴包括三个部件:轴线(用
lty
可以控制线型),刻度线,刻度标签。它们可以用如下的图形参数来控制:
lab=c(5, 7, 12)
|
第一个数为
x
轴希望画几个刻度线,第二个数为
y
轴希望画几个刻度线,这两个数是建议性的;第三个数是坐标刻度标签的宽度为多少个字符,包括小数点,这个数太小会使刻度标签四舍五入成一样的值。
|
las=1
|
坐标刻度标签的方向。
0
表示总是平行于坐标轴,
1
表示总是水平,
2
表示总是垂直于坐标轴。
|
mgp=c(3,1,0)
|
坐标轴各部件的位置。第一个元素为坐标轴位置到坐标轴标签的距离,以文本行高为单位。第二个元素为坐标轴位置到坐标刻度标签的距离。第三个元素为坐标轴位置到实际画的坐标轴的距离,通常是
0
。
|
tck=0.01
|
坐标轴刻度线长度,单位是绘图区域大小,值为占绘图区域的比例。
tck
小于
0.5
时
x
轴和
y
轴的刻度线将统一到相同的长度。取
1
时即画格子线。取负值时刻度线画在绘图区域的外面。
|
xaxs="s"
yaxs="d"
|
控制
x
轴和
y
轴的画轴方法。
取值为
"s"
(即
standard
)或
"e"
(即
extended
)的时候数据范围控制在最小刻度和最大刻度之间。取
"e"
时如果有数据点十分靠近边缘轴的范围会略微扩大。这种画轴方式有时会在轴的一边留下太大的空白。
取值为
"i"
(即
internal
)或
"r"
(此为缺省)使得刻度线都落在数据范围内部,而
"r"
方式所留的边空较小。
取值设为
"d"
时会锁定此坐标轴,后续的图形都使用与它完全相同的坐标轴,这在要生成一系列可比较的图形的时候是有用的。要解除锁定需要把这个图形参数设为其它值。
|