目錄: 圖形示例 圖形參數 符號、線條 顏色 文本屬性 尺寸與邊界 自定義標題 自定義坐標軸 圖例 文本標註 圖形組合 圖形示例 如下代碼描述病人對兩種藥物五個劑量水平上的響應情況 > mydata <- data.frame(dose=numeric(0),drugA=numeric(0),dru ...
目錄:
- 圖形示例
- 圖形參數
- 符號、線條
- 顏色
- 文本屬性
- 尺寸與邊界
- 自定義標題
- 自定義坐標軸
- 圖例
- 文本標註
- 圖形組合
圖形示例
- 如下代碼描述病人對兩種藥物五個劑量水平上的響應情況
> mydata <- data.frame(dose=numeric(0),drugA=numeric(0),drugB=numeric(0)) > fix(mydata) > mydata
> save(mydata,file = "mydata.rda") dose drugA drugB 1 20 16 15 2 30 20 18 3 40 27 25 4 45 40 31 5 60 60 40 > - 創建圖形,代碼如下:
with(mydata,{ plot(dose,drugA,type="b") })
-
圖形如下:
圖形參數
- 通過修改參數,可對圖形的字體、顏色、坐標軸、標簽進行進行修改
- par(optionname=value, optionname = value ......) , 用這種方式設定的參數除非被修改,否則在會話結束前一直有效
- par() 生成一個含有當前圖形參數設置的列表,添加參數 no.readonly = TRUE 生成一個可修改的當前圖形參數列表
- 如下圖:使用虛線和實心三角點,示例代碼如下:
load("mydata.rda") par(no.readonly = TRUE) par(lty=2) par(pch=17) #這兩句等價於:par(lty=2,pch=17) with(mydata,{ plot(dose,drugA,type="b") #使用par參數等價於plot(dose,drugA,type="b",lty=2,pch=17) })
-
生成圖例如下:
符號和線條
- pch: 指定繪製點時使用的符號,如下圖:
- cex: 指定符號的大小,是一個數值,表示繪圖符號相對於預設大小的縮放比例
- ltype: 指定線條類型,如下圖:
- lwd: 指定線條寬度,相於於預設值1的倍數,如:2, 0.5等
顏色
- R中,可通過顏色下標(如:col =1 )、顏色名稱(col="Red")、十六進位(col="#FFFF")、RGB值(col=rgb(1,1,1))、HSV值(col=hsv(0,0,1))來指定顏色
- 顏色參數如下:
- col: 預設的繪圖顏色
- col.axis: 坐標軸刻度文字的顏色
- col.lab: 坐標軸標簽(名稱)的顏色
- col.main: 標題顏色
- col.sub: 副標題顏色
- fg: 圖形的前景色
- bg: 圖形的背景色
文本屬性
- 指定文本大小參數
- cex.axis: 坐標刻度文字的縮放倍數
- cex.lab: 坐標標簽的縮放倍數
- cex.main: 標題的縮放倍數
- cex.sub: 副標題的縮放倍數
- 指定文件字體樣式:
- font: 整數,1=常規,2=粗體,3=斜體,4=粗斜體,5=符號字體
- font.axis: 坐標刻度文字的字體樣式
- font.lab: 坐標標簽的字體樣式
- font.main: 標題的字體樣式
- font.sub: 副標題的字體樣式
- ps: 字體磅值
尺寸與邊界
- 尺寸與邊界參數:
- pin: 以英寸表示圖形的尺寸(寬和高)
- mai: 在數值向量表示邊界大小,順序為:下、左、上、右,單位為英寸
- mar: 在數值向量表示邊界大小,順序為:下、左、上、右,單位為英分(一英分 = 1/12 英寸,相當於0.21釐米)
- 示例代碼及圖例:
setwd("E:\\R") load("mydata.rda") par(no.readonly = TRUE) par(pin=c(2,3),lwd=2,cex=1.5,cex.axis=0.75,font.axis=3) with(mydata,{ plot(dose,drugA,type="b",pch=19,lty=2,col="red") plot(dose,drugB,type="b",pch=23,lty=6,col="blue",bg="green") })
- 圖形大小寬高為:2英寸、3英寸,線條寬度為預設2位、符號為預設1.5倍、坐標軸文字設置為粗體,大小縮小為75%,par設定的參數對兩張圖均有效,plot中的參數僅對特定圖形有效
自定義標題
- title()一般用於添加信息到一個預設標題和坐標軸標簽被 ann=FALSE 選項移除的圖形中
- 示例代碼和圖形:
load("mydata.rda") with(mydata,{ plot(dose,drugA,type="b",pch=19,lty=2,ann=FALSE) title(main="hello",sub="demo",col.main="red",col.sub="green",xlab = "jl",ylab="fy") })
- 示例結果
自定義坐標軸
- axis()用來自定義坐標軸,而非使用R中的預設坐標田軸
- 語法: axis(side, at = NULL, labels = TRUE, pos = NA, las=, ...)
- 參數說明如下:
- side: 表示在圖形的哪邊繪製坐標軸: 1=下,2=左,3=上,4=右
- at: 一個數值型向量,表示需要繪製刻度線的位置
- labels: 字元向量,表示置於刻度線旁邊的文字標簽
- las: 標簽是否平行於(=0)或垂直於(=2)於坐標軸
- 示例代碼:
with(mydata,{ plot(dose,drugA,type="b",pch=19,lty=2,yaxt="n") axis(2,at=c(20,30,40,50,60),labels = c('A','B','C','D','E'),las=2,col="blue") })
- 註意:創建自定義坐標時,應當禁用自動生成的坐標軸
- axes = FALSE 將禁用全部的坐標軸(包括坐標軸框架線、除非添加參數 frame.plot = TRUE)
- xaxt = "n" 和 yaxt = "n" 將分別禁用X軸和Y軸(會留下框架線、只是去除了刻度)
圖例
- legend(): 當圖形中有多組數據時,圖例可幫助每個圖形代表的數據
- 語法:legend(location,title,legend,........)
- 參數說明:
- location: 圖例顯示位置,可使用關鍵字:bottom、bottomleft、left、topleft、top、topright、right、bottomright、center, 使用 inset=指定圖例內側移動的大小 (以繪圖區域大小分數表示)
- title: 可選項,圖例標題
- legend: 圖例標簽組成的字元串向量
- ......
- 示例代碼:
setwd("E:\\R") load("mydata.rda") dose <- mydata$dose drugA <- mydata$drugA drugB <- mydata$drugB plot(dose,drugA,type="b", pch=15,lty=1,col="red",ylim = c(0,60),main="Drug A vs.Drug B",xlab = "Drug dosage",ylab="drug Repsponse") lines(dose,drugB,type = "b",pch=17,lty=2,col="blue") abline(h=c(30),lty=2,lwd=1.5,col="gray") legend("topleft",inset = 0.05, title = "drug Type",legend = c("A","B"),lty=c(1,2),pch=c(15,17),col=c("red","blue"))
- 展現結果如下圖:
- abline(): 參考線函數,語法:abline(h=yvalues, v=xvalues)
文本標註
- text(): 向繪圖區域內添加文本
- mtext(): 向圖形的四個邊角之一添加文本
- 語法: text(location, "text to place", pos, .....)
- 參數解釋:
- location: 文本的位置參數
- pos: 文本相對於位置參數的方位,1=下,2=左,3=上,4=右, 可同時配合參數 offset=作為偏移量
- 示例代碼:
wt <- mtcars$wt mpg <- mtcars$mpg plot(wt,mpg,main="Mileage vs. Car weight",xlab="weight",ylab="Mileage",pch=18,col="blue") text(wt,mpg,row.names(mtcars),cex = 0.5, pos=4,offset = 0.4,col="red")
- 顯示效果圖如下:
圖形組合
- 使用par() 、layout()比較容易組合多幅圖為一幅總括圖
- par()使用mfrow=c(nrows,ncols) 創建按行填充的圖形矩陣, mfcol=c(nrows,ncols) 按列填充矩陣
- 示例代碼:
attach(mtcars) opar <- par(no.readonly = TRUE) par(mfrow=c(2,2)) plot(wt,mpg,main="Demo1") plot(wt,disp,main="Demo2") hist(wt,main="demo3") boxplot(wt,main="demo4") par(opar) detach(mtcars)
- 結果示例:
- layout() 調用 layout(mat),其中 mat是一個矩陣,它指定要組合的多個圖形所在的位置
- 示例代碼:
attach(mtcars) layout(matrix(c(1,1,2,3),nrow = 2,ncol = 2,byrow = TRUE)) hist(wt,main = "demo1") hist(mpg,main = "demo2") hist(disp,main = "demo3") detach(mtcars)
- 示例結果顯示