《R語言實戰》圖形初階實踐筆記
一、plot簡單的範例
plot()是R中為對象作圖的一個泛型函數。使用方法:
plot(x, y, type=" ")
其中type常見有如下類型:"p" for points,"l" for lines,"b" for both,
"c" for the lines part alone of "b","o" for both 『overplotted』
dose <-c(20,30,40,45,60)drugA <-c(16,20,27,40,60)drugB <-c(15,18,25,31,40)plot(dose,drugA,type = "b")
顯示結果如下:
二、設置圖形參數
通過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)
顯示結果如下:
下面介紹幾個重要的圖形參數:
1、符號和線條
- pch 指定繪製點時使用的符號。
- lty 指定線條類型: 0=blank, 1=solid (default), 2=dashed, 3=dotted, 4=dotdash, 5=longdash, 6=twodash
- cex 指定符號的大小。cex是一個數值,表示繪圖符號相對於默認大小的縮放倍數。
- lwd 指定線條寬度。lwd是以默認值的相對大小來表示的,例如,lwd=2將生成一條兩倍於默認寬度的線條。
2、顏色
- col 默認的繪圖顏色。如設定col=c("red","blue")並需要繪製三條線,則第一條線是紅色,第二條線是藍色。
- col.axis 坐標軸刻度文字的顏色
- col.lab 坐標軸標籤的顏色
- col.main 標題顏色
- col.sub 副標題顏色
- fg 圖形的前景色
- bg 圖形的背景色
- cex 表示相對於默認大小縮放倍數的數值。
- cex.axis 坐標軸刻度文字的縮放倍數
- cex.lab 坐標軸標籤的縮放倍數
- cex.main 標題的縮放倍數
- cex.sub 副標題的縮放倍數
- font 整數,用於指定繪圖使用的字體樣式。1=常規,2=粗體, 3=斜體, 4=粗斜體, 5=符號字體(以 Adobe符號編碼表示)font.axis 坐標軸刻度文字的字體樣式
- font.lab 坐標軸標籤(名稱)的字體樣式
- font.main 標題的字體樣式
- font.sub 副標題的字體樣式
- ps 字體磅值(1 磅約為 1/72 英寸)。文本的最終大小為 ps*cex
- family 繪製文本時使用的字體族。標準的取值為 serif(襯線)、 sans(無襯線)和 mono(等寬)
4、圖形尺寸與邊界尺寸
- pin 以英寸表示的圖形尺寸(寬和高)
- mai 以數值向量表示的邊界大小,順序為「下、左、上、右」,單位為英寸
- mar 以數值向量表示的邊界大小,順序為「下、左、上、右」,單位為英分。默認值為 c(5, 4, 4, 2) + 0.1
dose <- c(20, 30, 40, 45, 60)drugA <- c(16, 20, 27, 40, 60)drugB <- c(15, 18, 25, 31, 40)#保存當前圖形參數設置opar <- par(no.readonly=TRUE)#修改圖形參數,尺寸修改為寬2英寸,高3英寸par(pin=c(2, 3))#線條修改為2倍大小,符號為1.5倍大小par(lwd=2, cex=1.5)#坐標軸刻度縮放為默認大小75%,字體放大4倍par(cex.axis=.75, font.axis=4)#用紅色實心圓圈和虛線繪圖drugAplot(dose, drugA, type="b", pch=19, lty=2, col="red")#用綠色實心方框和實線繪圖drugBplot(dose, drugB, type="b", pch=18, lty=1, col="green", bg="blue")par(opar)
顯示結果如下:
三、添加文本、自定義坐標軸和圖例
1、標題
可以使用title()函數為圖形添加標題和坐標軸標籤。調用格式為:
title(main="main title", sub="subtitle",xlab="x-axis label", ylab="y-axis label")
2、坐標軸
你可以使用函數axis()來創建自定義的坐標軸,而非使用R中的默認坐標軸。其格式為:
axis(side, at=, labels=, pos=, lty=, col=, las=, tck=, ...)
- side 一個整數,表示在圖形的哪邊繪製坐標軸(1=下, 2=左, 3=上, 4=右)
- at 一個數值型向量,表示需要繪製刻度線的位置
- labels 一個字元型向量,表示置於刻度線旁邊的文字標籤(如果為 NULL,則將直接使用 at 中的值)
- pos 坐標軸線繪製位置的坐標(即與另一條坐標軸相交位置的值)
- lty 線條類型
- col 線條和刻度線顏色
- las 標籤是否平行於(=0)或垂直於(=2)坐標軸
- tck 刻度線的長度,以相對於繪圖區域大小的分數表示(負值表示在圖形外側,正值表示在圖形內側, 0表示禁用刻度, 1 表示繪製網格線);默認值為–0.01
自定義坐標軸的示例:
x <- c(1:10)y <- xz <- 10/xopar <- par(no.readonly = TRUE)#增加邊界大小par(mar=c(5,4,4,8)+0.1)#繪製x對y的圖形plot(x,y,type = "b", pch=21,col="red", yaxt="n",lty=1,ann=FALSE)#添加x對1/xlines(x,z,type="b",pch=22,col="blue",lty=2)#繪製自己的坐標軸axis(2,at=x,labels=x,col.axis="red",las=2)axis(4,at=z,labels=round(z,digits = 2), col.axis="blue",las=2,cex.axis=0.7,tck=-.01)mtext("y=1/x",side=4,line=3,cex.lab=1,las=2,col="blue")#添加標題和文本title("An Example of Creative Axes", xlab = "X values", ylab = "Y=X")par(opar)
顯示結果如下:
函數abline()可以用來為圖形添加參考線。其使用格式為:
abline(h=yvalues, v=xvalues)
4、圖例
圖例可以幫助你辨別出每個條形、扇形區域或折線各代表哪一類數據。我們可以使用函數legend()來添加圖例(果然不出所料)。其使用格式為:
legend(location, title, legend, ...)
- location 指定圖例的位置
- title 圖例標題的字元串(可選)
- legend 圖例標籤組成的字元型向量
- bty 用於指定盒子樣式
- bg 指定背景色
- cex 指定大小
- text.col 指定文本顏色
dose <- c(20, 30, 40, 45, 60)drugA <- c(16, 20, 27, 40, 60)drugB <- c(15, 18, 25, 31, 40)opar <- par(no.readonly=TRUE)#增加線條、文本、符號、標籤的寬度或大小par(lwd=2,cex=1.5,font.lab=2)#繪製圖形plot(dose,drugA,type = "b", pch=15,lty=1,col="red",ylim = c(0,60), main = "DrugA vs DrugB", xlab = "Drug Dosage",ylab = "Drug Response")lines(dose,drugB,type = "b", pch=17,lty=2,col="blue")#添加圖例legend("topleft",inset = .05,title="Drug Type",c("A","B"), lty=c(1,2),pch=c(15,17),col=c("red","blue"))par(opar)
顯示的結果如下:
5、文本標註
我們可以通過函數text()和mtext()將文本添加到圖形上。 text()可向繪圖區域內部添加文本,而mtext()則向圖形的四個邊界之一添加文本。使用格式分別為:
text(location, "text to place", pos, ...)mtext("text to place", side, line=n, ...)
- location 文本的位置參數。
- pos 文本相對於位置參數的方位。 1=下, 2=左, 3=上, 4=右。
- side 指定用來放置文本的邊。 1=下, 2=左, 3=上, 4=右。
- cex 調整字型大小
- col 調整顏色
- font 調整字體樣式
你 可 以 使 用 類 似 於 TeX 中 的 寫 法 為 圖 形 添 加 數 學 符 號 和 公 式 。請 參 閱
help(plotmath)
四、小結
本章的主體是關於如何修改R繪製的默認圖形,以得到更加有用或更吸引人的圖形。學習了如何修改一幅圖形的坐標軸、字體、繪圖符號、線條和顏色,以及如何添加標題、副標題、標籤、文本、圖例和參考線,看到了如何指定圖形和邊界的大小,以及將多幅圖形組合為實用的單幅圖形。
推薦閱讀: