2010-10-26 08:58:29| 分类: R&Bioconductor | 标签: |举报 |字号大中小 订阅
4.5 一个实例
为了讲解R的绘图功能,让我们来看一个简单的10对随机值的二维图形的
例子。这些值用以下命令生成:
> x <- rnorm(10)
> y <- rnorm(10)
所需的图可以用plot()来产生;只要输入命令:
> plot(x, y)
则图形将绘制在当前的绘图设备上。结果见图3。
现在,完全控制!在图5中,R仍然自动决定了诸如坐标轴刻度的个数,
标题与绘图区域之间的距离等少许事情。我们现在将看到如何完全控制图形
的绘制。这里用的方法是用plot(...,type="n")绘制一个“空白”的图形,
然后用低级函数来添加点,坐标轴,标签等。我们可以想出诸如改变绘图区
域颜色这样的安排。命令如下,产生的图形见图6。
opar <- par()
par(bg="lightgray", mar=c(2.5, 1.5, 2.5, 0.25))
plot(x, y, type="n", xlab="", ylab="", xlim=c(-2, 2),
ylim=c(-2, 2), xaxt="n", yaxt="n")
rect(-3, -3, 3, 3, col="cornsilk")
points(x, y, pch=10, col="red", cex=2)
axis(side=1, c(-2, 0, 2), tcl=-0.2, labels=FALSE)
axis(side=2, -1:1, tcl=-0.2, labels=FALSE)
title("How to customize a plot with R (ter)",
font.main=4, adj=1, cex.main=1)
mtext("Ten random values", side=1, line=1, at=1, cex=0.9, font=3)
mtext("Ten other values", line=0.5, at=-1.8, cex=0.9, font=3)
mtext(c(-2, 0, 2), side=1, las=1, at=c(-2, 0, 2), line=0.3,
col="blue", cex=0.9)
mtext(-1:1, side=2, las=1, at=-1:1, line=0.2, col="blue", cex=0.9)
par(opar)
和以前一样,先保存缺省的绘图参数,然后修改背景颜色和边空。画图
时用type="n"不画出点,用xlab="",ylab=""不画坐标轴标签,和用xaxt="n"
,yaxt="n"不画坐标轴。这样只画了绘图区域的边框,并用xlim和ylim规定
了坐标轴范围。注意,我们可以用选项axes=FALSE,但这样的话不仅不画坐
标轴,而且也不画边框。
然后,用低级图形函数在上面确定的坐标区域内加入各种图形元素。在
添加点以前,用rect()修改绘图区域的颜色:长方形大小选得比绘图区域大
得多。
用points()画点;用了一个新的符号。用axis()添加坐标轴:第二个自
变量提供的向量指定坐标刻度位置。选项labels=FALSE指定画坐标轴时不画
刻度数字。这个选项也可以用于字符式样的向量,例如labels=c("A", "B",
"C")。
用title()添加标题,但是字体稍微改变了。开始的两个边空文字函
数mtext()调用画坐标轴的标签。这个函数的第一自变量是要画的文本。选
项line指出到绘图区域的距离行数(缺省时line=0),at给出坐标。第二次
调用mtext(),调用利用了side (3)的缺省值。另外两个mtext()用数值型向量
作第一自变量,会自动转换为字符型
评论