
3.1 使用图形
R是一个惊艳的图形构建平台。这里我特意使用了构建一词。在通常的交互式会话中,你可以通过逐条输入语句构建图形,逐渐完善图形特征,直至得到想要的效果。
attach(mtcars)
plot(wt, mpg)
abline(lm(mpg~wt))
attach(mtcars)
plot(wt, mpg)
abline(lm(mpg~wt))

以下代码会将图形保存到当前工作目录中名为mygraph.pdf的PDF文件中
pdf("mygraph.pdf")
attach(mtcars)
plot(wt, mpg)
abline(lm(mpg~wt))
title("Regression of MPG on Weight")
detach(mtcars)
dev.off()
这样保存实在是太麻烦了,我们可以直接在软件手动保存
除了pdf(),还可以使用函数win.metafile()、png()、jpeg()、bmp()、tiff()、xfig()和postscript()将图形保存为其他格式。(注意,Windows图元文件格式仅在Windows系统中可用。)
绘图
通过执行如plot()、hist()(绘制直方图)或boxplot()这样的高级绘图命令来创建一幅新图形时,通常会覆盖掉先前的图形。
3.2 一个简单的例子

输入数据:
dose <- c(20, 30, 40, 45, 60)
drugA <- c(16, 20, 27, 40, 60)
drugB <- c(15, 18, 25, 31, 40)
使用以下代码可以创建一幅描述药物A的剂量和响应关系的图形:
plot(dose, drugA, type="b")

plot()是R中为对象作图的一个泛型函数(它的输出将根据所绘制对象类型的不同而变化)。本例中,plot(x, y, type="b")将x置于横轴,将y置于纵轴,绘制点集(x, y),然后使用线段将其连接。选项type="b"表示同时绘制点和线。使用help(plot)可以查看其他选项。
3.3 图形参数
我们可以通过修改称为图形参数的选项来自定义一幅图形的多个特征(字体、颜色、坐标轴、标签)。一种方法是通过函数par()
来指定这些选项。以这种方式设定的参数值除非被再次修改,否则将在会话结束前一直有效。其调用格式为par(optionname=value, optionname=name,...)
。不加参数地执行par()将生成一个含有当前图形参数设置的列表。添加参数no.readonly=TRUE可以生成一个可以修改的当前图形参数列表。
opar <- par(no.readonly=TRUE)
par(lty=2, pch=17)
plot(dose, drugA, type="b")
par(opar)

3.3.1 符号和线条


对于符号21~25,你还可以指定边界颜色(col=)和填充色(bg=)。
选项lty=用于指定想要的线条类型。可用的值如图3-5所示。

综合以上选项,以下代码:
plot(dose, drugA, type="b", lty=3, lwd=3, pch=15, cex=2)

3.3.2 颜色

3.3.3 文本属性


3.3.4 图形尺寸与边界尺寸

使用代码:
par(pin=c(4,3), mai=c(1,.5, 1, .2))
可生成一幅4英寸宽、3英寸高、上下边界为1英寸、左边界为0.5英寸、右边界为0.2英寸的图形。
3.4 添加文本、自定义坐标轴和图例
除了图形参数,许多高级绘图函数(例如plot、hist、boxplot)也允许自行设定坐标轴和文本标注选项。举例来说,以下代码在图形上添加了标题(main)、副标题(sub)、坐标轴标签(xlab、ylab)并指定了坐标轴范围(xlim、ylim)。结果如图3-8所示。
plot(dose, drugA, type="b",
col="red", lty=2, pch=2, lwd=2,
main="Clinical Trials for Drug A",
sub="This is hypothetical data",
xlab="Dosage", ylab="Drug Response",
xlim=c(0, 60), ylim=c(0, 70))

R语言实战(第2版):第一章 R语言介绍
R语言实战(第2版):第二章 创建数据集(01)
R语言实战(第2版):第二章 创建数据集(02)
R语言实战(第2版):第二章 创建数据集(03)
网友评论