《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 圖形的背景色

3、文本屬性

  • 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)

    顯示結果如下:

3、參考線

函數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 調整字體樣式

6、數學標註

你 可 以 使 用 類 似 於 TeX 中 的 寫 法 為 圖 形 添 加 數 學 符 號 和 公 式 。請 參 閱

help(plotmath)

四、小結

本章的主體是關於如何修改R繪製的默認圖形,以得到更加有用或更吸引人的圖形。學習了如何修改一幅圖形的坐標軸、字體、繪圖符號、線條和顏色,以及如何添加標題、副標題、標籤、文本、圖例和參考線,看到了如何指定圖形和邊界的大小,以及將多幅圖形組合為實用的單幅圖形。


推薦閱讀:

2018 年基因檢測行業有哪些機會?
大數據揭示你心中的冪冪,為何愛她不敢說出口

TAG:R编程语言 | 数据分析 | 大数据 |