R語言基礎圖形分爲創建圖形與添加圖形內容。
- 創建圖形
- 條形圖
- 餅圖
- 直方圖
- 核密度圖
- 箱線圖
- 點圖
- 散點圖
- 折線圖
- 相關圖
- 馬賽克圖
- 添加圖形內容
- 圖形參數:符號、線條、顏色、文本屬性、圖形尺寸與邊界尺寸
- 標題、座標軸、圖例
各種圖形是高級繪圖函數,爲圖形添加各種內容的函數爲低級繪圖函數。
繪圖邏輯基本上爲先創建一個圖形,隨後添加各種內容以完善豐富原始圖形。
本本任務爲簡單論述創建圖形及圖形相關添加內容,在以後的文章中詳細介紹各分類圖形與圖形用途。
圖形創建與保存
創建
使用plot()函數創建圖形
示例:
#創建散點圖
#綁定數據
attach(mtcars)
#調用plot函數
plot(wt,mpg)
#添加圖形內容
#添加一條擬合線
abline(lm(mpg~wt))
#添加標題
title('Regression of MPG on Weight')
#解除數據綁定狀態
detach(mtcars)
保存
- Rstudio下點擊右下角plot面板export-Save as Image命令。
- Rstudio下點擊右下角plot面板,左右箭頭可以顯示前一個和後一個創建的圖形
- 也可以使用dev相關函數,具體參考help(dev.cur)
圖形參數
圖形參數用於定義一幅圖形大小、顏色、座標軸等特徵。
特徵參數包括:
- 符號和線條
- 顏色
- 文本屬性
- 圖形尺寸與邊界尺寸
圖形參數添加方式:
- 一種是通過函數par()來指定,這種方式設置的參數值在會話結束前一直有效。調用格式爲par(選項=值)。
#生成數據
data <- c(2,4,1,2,1,2,6,7,5,2)
#將點換成三角形
par(pch=17)
#畫出點圖
plot(data)
解除par狀態,Rstudio下plot面板點擊掃把圖標即可
也可以以opar <- par(no.readonly = TRUE)開頭,par(opar)還原初始圖形設置
- 一種是在圖形函數(高級繪圖函數)中直接添加(選項=值),這種方式僅僅對這幅圖本身有效。
#生成數據
data <- c(2,4,1,2,1,2,6,7,5,2)
#將點換成下三角形
plot(data,pch=25)
高級繪圖函數可以指定的函數不同,可以通過help()查看可以指定的參數有哪些。如help(‘plot’)、help(‘hist’)。
符號和線條
參數及描述如下:
參數 | 描述 |
---|---|
pch | 指定繪製點時使用的符號 |
cex | 指定符號大小,默認爲1。1.5表示放大1.5倍,0.5表示縮小50% |
lty | 指定線條類型 |
lwd | 指定線條寬度,默認爲1。lwd=2將生成一條兩倍於默認寬度的線條 |
pch類型如下:
lty類型如下:
顏色
顏色參數如下:
參數 | 描述 |
---|---|
col | 默認繪圖顏色。col='blue’藍色 |
col.axis | 座標軸刻度文字的顏色 |
col.lab | 座標軸標籤顏色 |
col.main | 標題顏色 |
col.sub | 副標題顏色 |
fg | 圖形前景色 |
bg | 圖形背景色 |
用colors()函數可以返回顏色名稱。rainbow()可以生成彩虹型顏色。
使用RColorBrewer包可以調出顏色板
library(RColorBrewer)
display.brewer.all()
文本屬性
文本屬性用來指定字號、字體和字樣。
參數 | 描述 |
---|---|
cex | 指定文本大小。默認爲1 |
cex.axis | 座標軸刻度文字的縮放倍數。類似於cex |
cex.lab | 座標軸標籤(名稱)的縮放倍數 |
cex.main | 標題縮放倍數 |
cex.sub | 副標題縮放倍數 |
font | 指定文字樣式。整數。1=常規,2=粗體,3=斜體,4=粗斜體,5=符號字體 |
font.axis | 座標軸刻度文字的字體樣式 |
font.lab | 座標軸標籤(名稱)的字體樣式 |
font.main | 標題字體樣式 |
font.sub | 副標題字體樣式 |
ps | 字體磅值。文本的最終大小爲ps.cex |
family | 文本字體。取值serif(襯線),sans(無襯線),mono(等寬) |
圖形尺寸與邊界尺寸
參數 | 描述 |
---|---|
pin | 以英寸表示圖形尺寸(寬和高) |
mai | 以數值向量表示邊界大小,順序爲‘下,左,上,右’,單位爲英寸 |
mar | 以數值向量表示邊界大小,順序爲‘下,左,上,右’,單位爲英分。默認值爲c(5,4,4,2)+0.1 |
綜合示例:
#生成數據
data <- c(1,2,5,3,6,4,5,1,4)
#複製圖形參數便於還原
opar <- par(no.readonly = TRUE)
#設置圖形大小
par(pin=c(2,2))
#設置線條寬度和符號大小
par(lwd=2,cex=1.5)
#設置座標軸刻度文字縮放倍數及座標軸字體樣式
par(cex.axis=.75,font.axis=3)
#繪圖,下三角形,紅色
plot(data,pch=25,col='red')
#還原圖形設置
par(opar)
標題、座標軸、圖例
許多高級繪圖函數(如plot,hist)可以添加座標軸、文本標註選項。
標題
使用title()函數可以爲圖形添加標題和座標軸標籤。
調用格式爲:
title(main=‘主標題’,sub=‘副標題’,xlab=‘x座標標籤’,ylab=‘y座標標籤’)
某些高級繪圖函數已經包含默認標題和標籤。可以通過plot(ann=FALSE)或par(ann=FALSE)移除。
座標軸
函數axis()自定義座標軸。
調用格式如下:
axis(side,at=,labels=,pos=,lty=,col=,las=,tck=,…)
選項 | 描述 |
---|---|
side | 一個整數。表示在圖形哪邊繪製座標軸(1=下,2=左,3=上,4=右) |
at | 一個數值向量,表示需要繪製刻度線的位置 |
labels | 一個字符向量,表示置於刻度線旁邊的文字標籤 |
pos | 座標軸線繪製位置的座標 |
lty | 線條類型 |
col | 線條和刻度線顏色 |
las | 標籤是否平行於(=0)或垂直於(=2)座標軸 |
tck | 刻度線的長度,以相對於繪圖區域大小的分數表示(負值表示在圖形外側,正值表示在圖形內測,0表示禁用刻度,1表示繪製網格線)默認值爲-0.01 |
… | 表示其他圖形參數 |
參考線
使用abline()函數爲圖形添加參考線。
格式如下:
abline(h=yvalues,v=xvalues)
abline函數也可以添加線條類型、顏色和寬度等圖形參數
圖例
當圖中數據不止一組時,圖例用於辨別圖中數據屬於哪一組。
使用函數legend()來添加圖例。格式爲:
legend(location,title,legend,…)
選項 | 描述 |
---|---|
location | 圖例位置 |
title | 圖例標題的字符串 |
legend | 圖例標籤組成的字符型向量 |
文本標註
使用函數text()和mtext()將文本添加到圖形上。text()可向繪圖區域內部添加文本,mtext()向圖形的四個邊界之一添加文本。格式爲:
text(location,‘text to place’,pos,…)
mtext(‘text to place’,side,line=n,…)
attach(mtcars)
plot(wt,mpg,main='Mileage vs weight',xlab = 'weight',ylab = 'Mileage',pch=18,col='blue')
text(wt,mpg,row.names(mtcars),cex=0.6,pos=4,col = 'red')
detach(mtcars)
數學標註
可以使用類似於TeX中寫法爲圖形調價數學符號和公式。
參閱help(plotmath)
查看例子demo(plotmath)
函數plotmath()可以爲圖形主體或邊界上的標題、座標軸名稱或文本標註添加數學符號。
圖形組合
可以通過par()或layout()將多幅圖組合爲一幅總括圖形。
- par()函數添加參數mforw=c(nrows,ncols)來創建按行填充,行數爲nrows,列數爲ncols的圖形矩陣。
par()
#創建一個2行2列的圖形矩陣
attach(mtcars)
opar <- par(no.readonly = TRUE)
par(mfrow=c(2,2))
plot(wt,mpg)
plot(wt,disp)
hist(wt)
boxplot(wt)
par(opar)
detach(mtcars)
layout()
layout(mat),mat爲矩陣,指定所要組合的多個圖形的所在位置。
#生成一個3圖組合圖形矩陣
#一幅放在第1行,其他放在第2行
attach(mtcars)
layout(matrix(c(1,1,2,3),2,2,byrow = TRUE))
hist(wt)
hist(mpg)
hist(disp)
detach(mtcars)