
3.1 使用圖形
R是一個驚艷的圖形構(gòu)建平臺。這里我特意使用了構(gòu)建一詞。在通常的交互式會話中,你可以通過逐條輸入語句構(gòu)建圖形,逐漸完善圖形特征,直至得到想要的效果。
attach(mtcars)
plot(wt, mpg)
abline(lm(mpg~wt))
attach(mtcars)
plot(wt, mpg)
abline(lm(mpg~wt))

以下代碼會將圖形保存到當(dāng)前工作目錄中名為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()
這樣保存實(shí)在是太麻煩了,我們可以直接在軟件手動保存
除了pdf(),還可以使用函數(shù)win.metafile()、png()、jpeg()、bmp()、tiff()、xfig()和postscript()將圖形保存為其他格式。(注意,Windows圖元文件格式僅在Windows系統(tǒng)中可用。)
繪圖
通過執(zhí)行如plot()、hist()(繪制直方圖)或boxplot()這樣的高級繪圖命令來創(chuàng)建一幅新圖形時,通常會覆蓋掉先前的圖形。
3.2 一個簡單的例子

輸入數(shù)據(jù):
dose <- c(20, 30, 40, 45, 60)
drugA <- c(16, 20, 27, 40, 60)
drugB <- c(15, 18, 25, 31, 40)
使用以下代碼可以創(chuàng)建一幅描述藥物A的劑量和響應(yīng)關(guān)系的圖形:
plot(dose, drugA, type="b")

plot()是R中為對象作圖的一個泛型函數(shù)(它的輸出將根據(jù)所繪制對象類型的不同而變化)。本例中,plot(x, y, type="b")將x置于橫軸,將y置于縱軸,繪制點(diǎn)集(x, y),然后使用線段將其連接。選項(xiàng)type="b"表示同時繪制點(diǎn)和線。使用help(plot)可以查看其他選項(xiàng)。
3.3 圖形參數(shù)
我們可以通過修改稱為圖形參數(shù)的選項(xiàng)來自定義一幅圖形的多個特征(字體、顏色、坐標(biāo)軸、標(biāo)簽)。一種方法是通過函數(shù)par()來指定這些選項(xiàng)。以這種方式設(shè)定的參數(shù)值除非被再次修改,否則將在會話結(jié)束前一直有效。其調(diào)用格式為par(optionname=value, optionname=name,...)。不加參數(shù)地執(zhí)行par()將生成一個含有當(dāng)前圖形參數(shù)設(shè)置的列表。添加參數(shù)no.readonly=TRUE可以生成一個可以修改的當(dāng)前圖形參數(shù)列表。
opar <- par(no.readonly=TRUE)
par(lty=2, pch=17)
plot(dose, drugA, type="b")
par(opar)

3.3.1 符號和線條


對于符號21~25,你還可以指定邊界顏色(col=)和填充色(bg=)。
選項(xiàng)lty=用于指定想要的線條類型。可用的值如圖3-5所示。

綜合以上選項(xiàng),以下代碼:
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 添加文本、自定義坐標(biāo)軸和圖例
除了圖形參數(shù),許多高級繪圖函數(shù)(例如plot、hist、boxplot)也允許自行設(shè)定坐標(biāo)軸和文本標(biāo)注選項(xiàng)。舉例來說,以下代碼在圖形上添加了標(biāo)題(main)、副標(biāo)題(sub)、坐標(biāo)軸標(biāo)簽(xlab、ylab)并指定了坐標(biāo)軸范圍(xlim、ylim)。結(jié)果如圖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語言實(shí)戰(zhàn)(第2版):第一章 R語言介紹
R語言實(shí)戰(zhàn)(第2版):第二章 創(chuàng)建數(shù)據(jù)集(01)
R語言實(shí)戰(zhàn)(第2版):第二章 創(chuàng)建數(shù)據(jù)集(02)
R語言實(shí)戰(zhàn)(第2版):第二章 創(chuàng)建數(shù)據(jù)集(03)