欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

R語(yǔ)言基本畫(huà)圖函數(shù)與多圖多線的用法

 更新時(shí)間:2021年03月13日 16:41:59   作者:chenlongzhen_tech  
這篇文章主要介紹了R語(yǔ)言基本畫(huà)圖函數(shù)與多圖多線的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

常用統(tǒng)計(jì)作圖函數(shù)匯總

plot()

hist() 直方圖

stem() 莖葉圖

boxplot() 箱線圖(盒形圖)

coplot() 協(xié)同圖

qqnorm() 正態(tài)qq圖

qqplot() 兩總體qq圖

1. 高級(jí)低級(jí)圖形函數(shù)的常用選項(xiàng)

高、低級(jí)圖形函數(shù)概述

高級(jí)圖形函數(shù)可以迅速簡(jiǎn)便地繪制常見(jiàn)類(lèi)型的圖形,但是,某些情況下你可能希望繪制一些有特殊要求的圖形。比如,你希望坐標(biāo)軸按照自己的設(shè)計(jì)繪制,在已有的圖上增加另一組數(shù)據(jù),在圖中加入一行文本注釋?zhuān)L出多個(gè)曲線代表的數(shù)據(jù)的標(biāo)簽,等等。

低級(jí)圖形函數(shù)讓你在已有的圖的基礎(chǔ)上進(jìn)行添加。

低級(jí)圖形函數(shù)一般需要指定位置信息,其中的坐標(biāo)指的是所謂用戶坐標(biāo),即前面的高級(jí)圖形函數(shù)所建立的坐標(biāo)系中的坐標(biāo)。坐標(biāo)可以用兩個(gè)向量x和y給出,也可以由一個(gè)兩列的矩陣給出。如果交互作圖可以用下面介紹的locator()函數(shù)來(lái)交互地從圖形中直接輸入坐標(biāo)位置。

最常用高級(jí)函數(shù)的是plot()函數(shù)。比如,

- plot(x,y)(其中x,y是向量)對(duì)兩個(gè)變量畫(huà)散點(diǎn)圖。

- 用plot(z) (其中z是一個(gè)定義了x變量和y變量的列表,或者一個(gè)兩列的矩陣)也可以達(dá)到同樣目的。

如果x是一個(gè)時(shí)間序列對(duì)象(時(shí)間序列對(duì)象用ts()函數(shù)生成),plot(x)繪制時(shí)間序列曲線圖。

- 如果x是一個(gè)普通向量,則繪制x的值對(duì)其下標(biāo)的散點(diǎn)圖。

- 如果x是復(fù)數(shù)向量則繪制虛部對(duì)實(shí)部的散點(diǎn)圖。

- 如果f是一個(gè)因子,則plot(f)繪制f的條形圖(每個(gè)因子水平的個(gè)數(shù))。

- 如果f是因子,y是同長(zhǎng)度的數(shù)值向量,則plot(f,y)對(duì)f的每一因子水平繪制y中相應(yīng)數(shù)值的盒形圖。

- 如果d是一個(gè)數(shù)值型數(shù)據(jù)框,則plot(d)對(duì)d的每?jī)蓚€(gè)變量之間作圖(散點(diǎn)圖等)

load("F:/R/cl.RData")
plot(cl$Sex)

高級(jí)繪圖函數(shù)常用選項(xiàng)

低級(jí)繪圖函數(shù)常用選項(xiàng)

低級(jí)圖形函數(shù)一般需要指定位置信息,其中的坐標(biāo)指的是所謂用戶坐標(biāo),即前面的高級(jí)圖形函數(shù)所建立的坐標(biāo)系中的坐標(biāo)。坐標(biāo)可以用兩個(gè)向量x和y給出,也可以由一個(gè)兩列的矩陣給出。如果交互作圖可以用下面介紹的locator()函數(shù)來(lái)交互地從圖形中直接輸入坐標(biāo)位置。

圖形參數(shù)詳解

圖形元素

類(lèi)型 解釋
pch 指定用于繪制散點(diǎn)的符號(hào)。繪制的點(diǎn)往往略高于或低于指定的坐標(biāo)位置,僅pch=“.”無(wú)這個(gè)問(wèn)題。
lty=2 指定畫(huà)線用的線型。缺省值lty=1是實(shí)線。從2開(kāi)始是各種虛線。
lwd=2 指定線粗細(xì),以標(biāo)準(zhǔn)線粗細(xì)為單位。這個(gè)參數(shù)影響數(shù)據(jù)曲線的線寬以及坐標(biāo)軸的線寬。
col=2 指定顏色,可應(yīng)用于繪點(diǎn)、線、文本、填充區(qū)域、圖象。顏色值也可以用象”red”,”blue” 這樣的顏色名指定。
font=2 用來(lái)指定字體的整數(shù)。一般font=1是正體,2是 黑體,3是 斜體,4是 黑斜體。
font.axisfont.labfont.mainfont.sub 分別用來(lái)指定坐標(biāo)刻度、坐標(biāo)軸標(biāo)簽、標(biāo)題、小標(biāo)題所用的字體。
adj=-0.1 指定文本相對(duì)于給定坐標(biāo)的對(duì)齊方式。取0表示左對(duì)齊,取1表示右對(duì)齊,取0.5表示居中。此參數(shù)的值實(shí)際代表的是出現(xiàn)在給定坐標(biāo)左邊的文本的比例,所以adj=-0.1的效果是文本出現(xiàn)在給定坐標(biāo)位置的右邊并空出相當(dāng)于文本10%長(zhǎng)度的距離。
cex=1.5 指定字符放大倍數(shù)。

坐標(biāo)軸與坐標(biāo)刻度

許多高級(jí)圖形帶有坐標(biāo)軸,還可以先不畫(huà)坐標(biāo)軸然后用axis()單獨(dú)加。

函數(shù)box() 用來(lái)畫(huà)坐標(biāo)區(qū)域四周的框線。

坐標(biāo)軸包括三個(gè)部件:軸線(用lty可以控制線型),刻度線,刻度標(biāo)簽。它們可以用如下的圖形參數(shù)來(lái)控制:

參數(shù) 解釋
lab=c(5, 7, 12) 第一個(gè)數(shù)為x軸希望畫(huà)幾個(gè)刻度線,第二個(gè)數(shù)為y軸希望畫(huà)幾個(gè)刻度線,這兩個(gè)數(shù)是建議性的;第三個(gè)數(shù)是坐標(biāo)刻度標(biāo)簽的寬度為多少個(gè)字符,包括小數(shù)點(diǎn),這個(gè)數(shù)太小會(huì)使刻度標(biāo)簽四舍五入成一樣的值。
las=1 坐標(biāo)刻度標(biāo)簽的方向。0表示總是平行于坐標(biāo)軸,1表示總是水平,2表示總是垂直于坐標(biāo)軸。
mgp=c(3,1,0) 坐標(biāo)軸各部件的位置。第一個(gè)元素為坐標(biāo)軸位置到坐標(biāo)軸標(biāo)簽的距離,以文本行高為單位。第二個(gè)元素為坐標(biāo)軸位置到坐標(biāo)刻度標(biāo)簽的距離。第三個(gè)元素為坐標(biāo)軸位置到實(shí)際畫(huà)的坐標(biāo)軸的距離,通常是0。
tck=0.01 坐標(biāo)軸刻度線長(zhǎng)度,單位是繪圖區(qū)域大小,值為占繪圖區(qū)域的比例。tck小于0.5時(shí)x軸和y 軸的刻度線將統(tǒng)一到相同的長(zhǎng)度。取1時(shí)即畫(huà)格子線。取負(fù)值時(shí)刻度線畫(huà)在繪圖區(qū)域的外面。
xaxs=”s”yaxs=”d” 控制x軸和y軸的畫(huà)軸方法。取值為”s”(即standard)或”e”(即extended)的時(shí)候數(shù)據(jù)范圍控制在最小刻度和最大刻度之間。取”e”時(shí)如果有數(shù)據(jù)點(diǎn)十分靠近邊緣軸的范圍會(huì)略微擴(kuò)大。這種畫(huà)軸方式有時(shí)會(huì)在軸的一邊留下太大的空白。取值為“i”(即internal)或“r”(此為缺省)使得刻度線都落在數(shù)據(jù)范圍內(nèi)部,而“r”方式所留的邊空較小。取值設(shè)為”d”時(shí)會(huì)鎖定此坐標(biāo)軸,后續(xù)的圖形都使用與它完全相同的坐標(biāo)軸,這在要生成一系列可比較的圖形的時(shí)候是有用的。要解除鎖定需要把這個(gè)圖形參數(shù)設(shè)為其它值。

一頁(yè)多圖

一頁(yè)多圖用mfrow參數(shù)或mfcol參數(shù)規(guī)定,如:

par(mfrow=c(3,2)) 表示同一頁(yè)有三行兩列共六個(gè)圖,而且次序?yàn)榘葱刑罘拧?/p>

類(lèi)似地,par(mfcol=c(3,2))規(guī)定相同的窗格結(jié)構(gòu),但是次序?yàn)榘戳刑罘?,即先填滿第一列的三個(gè)再填第二列。

par(mfrow=c(1,1))即可。缺省時(shí)無(wú)外邊空。為了規(guī)定外邊空大小,可以用omi參數(shù)或oma參數(shù)。omi參數(shù)使用英寸為單位,oma參數(shù)以文本行高為單位,兩個(gè)參數(shù)均為四個(gè)元素的向量,分別給出下、左、上、右方的邊空大小。

如:par(oma=c(2,0,3,0))函數(shù)mtext用來(lái)在外邊空加文字標(biāo)注。

其用法為mtext(text, side = 3, line = 0, outer = FALSE)

在多圖環(huán)境中還可以用mfg參數(shù)來(lái)直接跳到某一個(gè)窗格,比如par(mfg=c(2,2,3,2))表示在三行兩列的多圖環(huán)境中直接跳到第二行第二列位置。mfg參數(shù)的后兩個(gè)表示多圖環(huán)境的行、列數(shù),前兩個(gè)表示要跳到的位置。

可以不使用多圖環(huán)境而直接在頁(yè)面中的任意位置產(chǎn)生一個(gè)窗格來(lái)繪圖,參數(shù)為fig,如:par(fig=c(4,9,1,4)/10)此參數(shù)為一個(gè)向量,分別給出窗格的左、右、下、上邊緣的位置,取值為占全頁(yè)面的比例,比如上面的例子在頁(yè)面的右下方開(kāi)一個(gè)窗格作圖。

圖形邊空

S中一個(gè)單獨(dú)的圖由繪圖區(qū)域(繪圖的點(diǎn)、線等畫(huà)在這個(gè)區(qū)域中)和包圍繪圖區(qū)域的邊空組成,邊空中可以包含坐標(biāo)軸標(biāo)簽、坐標(biāo)軸刻度標(biāo)簽、標(biāo)題、小標(biāo)題等,繪圖區(qū)域一般被坐標(biāo)軸包圍。

邊空的大小由mai參數(shù)或mar參數(shù)控制,它們都是四個(gè)元素的向量,分別規(guī)定下方、左方、上方、右方的邊空大小,其中mai取值的單位是英寸,而mar的取值單位是文本行高度。

例如:

par(mai=c(1, 0.5, 0.5, 0))
par(mar=c(4, 2, 2, 1))

這兩個(gè)圖形參數(shù)不是獨(dú)立的,設(shè)定一個(gè)會(huì)影響另一個(gè)。S缺省的圖形邊空常常太大,以至于有時(shí)圖形窗口較小時(shí)邊空占了整個(gè)圖形的很大一部分。

通常我們可以取消右邊空,并且在不用標(biāo)題時(shí)可以大大縮小上邊空。例如下例可以生成十分緊湊的圖形:

oldpar <- par(mar=c(2,2,1,0.2))
plot(x,y)

在一個(gè)頁(yè)面上畫(huà)多個(gè)圖時(shí)邊空自動(dòng)減半,但我們往往還需要進(jìn)一步減小邊空才能使多個(gè)圖有意義。

交互圖形函數(shù)

函數(shù)locator(n, type)運(yùn)行時(shí)會(huì)停下來(lái)等待用戶在圖中點(diǎn)擊,然后返回圖形中鼠標(biāo)點(diǎn)擊的位置的坐標(biāo)。等待點(diǎn)擊時(shí)用鼠標(biāo)中鍵點(diǎn)擊可以選擇停止等待,立即返回。參數(shù)n指定點(diǎn)擊多少次后自動(dòng)停止,缺省為500次;參數(shù)type如果使用則可指定繪點(diǎn)類(lèi)型,與plot()函數(shù)中的type 參數(shù)用法相同,在鼠標(biāo)點(diǎn)擊處繪點(diǎn)(線、垂線,等等)。locator()的返回值是一個(gè)列表,有兩個(gè)變量(元素)x和y,分別保存點(diǎn)擊位置的橫坐標(biāo)和縱坐標(biāo)

例如,為了在已經(jīng)繪制的曲線圖中找一個(gè)空地方標(biāo)上一行文本,只要使用如下程序:

text(locator(1), "Normal density", adj=0) 

text()函數(shù)的adj參數(shù)用一個(gè)數(shù)字表示文本串相對(duì)于給定的坐標(biāo)的畫(huà)法,adj=0表示給定坐標(biāo)為文本串左側(cè)的坐標(biāo),adj=1表示給定坐標(biāo)為文本串右側(cè)的坐標(biāo),adj=0.5表示給定坐標(biāo)為文本串中間的坐標(biāo)。

函數(shù)identify(x, y, labels)在運(yùn)行時(shí)也會(huì)停下來(lái)等待用戶點(diǎn)擊,直到按了鼠標(biāo)中鍵,任何返回用戶在圖形中用鼠標(biāo)點(diǎn)擊的點(diǎn)的序號(hào),點(diǎn)擊時(shí)對(duì)點(diǎn)擊的點(diǎn)加標(biāo)簽。參數(shù)x和y給出要識(shí)別的各個(gè)點(diǎn)的坐標(biāo)。labels參數(shù)指定點(diǎn)擊某個(gè)點(diǎn)時(shí)要在旁邊繪制的文本標(biāo)簽,缺省時(shí)標(biāo)出此點(diǎn)的序號(hào),如果只需要返回值而不想畫(huà)任何標(biāo)記則可以在調(diào)用此函數(shù)時(shí)加一個(gè)plot=F參數(shù)。

注意identify()與locator()不同,locator()返回圖中任意點(diǎn)擊位置的坐標(biāo),而identify() 只返回離點(diǎn)擊位置最近的點(diǎn)的序號(hào)。例如,我們?cè)谙蛄縳和y中有若干個(gè)點(diǎn)的坐標(biāo),運(yùn)行如下程序:

 attach(cl)
 plot(Height, Weight) ;
 identify(Height,Weight)

這時(shí)顯示轉(zhuǎn)移到圖形窗口,進(jìn)入等待狀態(tài),用戶可以點(diǎn)擊圖中特別的點(diǎn),該點(diǎn)的序號(hào)就會(huì)在旁邊標(biāo)出。為了結(jié)束,只要單擊鼠標(biāo)中鍵或單擊右鍵并選擇停止。返回結(jié)果為你點(diǎn)擊的各個(gè)點(diǎn)的序號(hào):

警告: 已經(jīng)找到了最近的點(diǎn)

警告: 沒(méi)有0.25英尺的點(diǎn)

[1] 1 2 10 15 16

2. hist直方圖

hist(x)作向量x的直方圖。缺省時(shí)自動(dòng)確定分組,也可以用nclass=參數(shù)指定分組個(gè)數(shù),或者用breaks=參數(shù)指定一個(gè)分組點(diǎn)向量。如果指定了prob=T則縱軸顯示密度估計(jì)。

3. stem莖葉圖

Usage:

stem(x, scale = 1, width = 80, atom = 1e-08)

Arguments:

x: a numeric vector.

scale: This controls the plot length.

width: The desired width of plot.

atom: a tolerance.

References:

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) _The New S

Language_. Wadsworth & Brooks/Cole.

Examples:

stem(islands)

stem(log10(islands))

stem(cl$Weight, scale = 1, width = 80, atom = 1e-08)
 The decimal point is 1 digit(s) to the right of the |

 4 | 1
 6 | 7
 8 | 3445508
 10 | 0332233
 12 | 83
 14 | 0

4. boxplot箱線圖

箱線圖的圖形中的參數(shù)意義如下:

例子: 作了兩個(gè)圖疊加,一個(gè)為subset= supp == “VC“,另一個(gè)為subset= supp == ”O(jiān)J“.數(shù)據(jù)ToothGrowth有兩個(gè)數(shù)量變量(len,dose)和一個(gè)屬性變量(supp); 對(duì)每個(gè)supp,dose各有三個(gè)值(各形成三個(gè)盒形圖). len ~ dose意味著box為len所做.

data(ToothGrowth)
boxplot(len ~ dose, data = ToothGrowth, boxwex = 0.25, at = 1:3 - 0.2, subset= supp == "VC", col="yellow", main="Guinea Pigs' Tooth Growth", xlab="Vitamin C dose mg", ylab="tooth length", ylim=c(0,35))
boxplot(len ~ dose, data = ToothGrowth, add = TRUE, boxwex = 0.25, at = 1:3 + 0.2, subset= supp == "OJ", col="orange") 
legend(2, 9, c("Ascorbic acid", "Orange juice"), fill = c("yellow", "orange"))

boxplot(cl$Height~cl$Sex,data=cl,col = "lightgray");

5. coplot() 協(xié)同圖

attach(cl)
coplot(Weight ~ Height | Sex) 

如果z是一個(gè)數(shù)值型變量,則coplot() 先對(duì)z的取值分組,然后對(duì)z的每一組取值分別繪圖。

甚至可以用如coplot(y~x | x1+x2)表示對(duì)x1和x2的每一水平組合繪圖。

coplot()和pairs()函數(shù)缺省繪制散點(diǎn)圖,但可以用一個(gè)panel= 參數(shù)指定其它的低級(jí)繪圖函數(shù),如lines,panel.smooth等。

tsplot(x)繪制時(shí)間序列曲線圖。多個(gè)參數(shù)時(shí)tsplot(x1, x2, ...)表示繪制多條曲線,自動(dòng)統(tǒng)一曲線取值范圍。如果參數(shù)非時(shí)間序列對(duì)象則以下標(biāo)1,2,3等為橫坐標(biāo)繪圖。

6. qqnorm() 正態(tài)qq圖與qqplot() 兩總體qq圖

- qqnorm(x), qqline(x), qqplot(x,y)作分位數(shù)-分位數(shù)圖。

- qqnorm(x)對(duì)向量x作正態(tài)概率(縱軸為次序統(tǒng)計(jì)量值,橫軸為對(duì)應(yīng)該次序統(tǒng)計(jì)量的標(biāo)準(zhǔn)正態(tài)分布分位數(shù)值)。

- qqline(x) 除作qqnorm(x)圖之外還畫(huà)一條擬合曲線。

qqplot(x,y)把x和y的次序統(tǒng)計(jì)量分別畫(huà)在x軸和y 軸以比較兩個(gè)變量的分布。

x <- rnorm(50)
y <- rexp(60)
qqplot(x,y)#可以判斷是不是同一個(gè)類(lèi)型的分布

多圖多線

1 多圖

par(mfrow=c(2,2))#準(zhǔn)備畫(huà)22的4個(gè)圖
plot(compression, distance,main= "Hooke's Law") #只有標(biāo)題的圖
plot(compression, distance,main= "Hooke's Law", xlab= "x",ylab= "y") #標(biāo)題+x,y標(biāo)記
identify(compression,distance) #標(biāo)出點(diǎn)號(hào)碼
plot(compression, distance,main="Hooke's Law") #只有標(biāo)題的圖
text(46,120, "f=1/2*k*s")#在指定位寫(xiě)入文字
plot(compression, distance,main="Hooke's Law") #只有標(biāo)題的圖
text(locator(2), "I am here!") #在點(diǎn)擊的兩個(gè)位置寫(xiě)入文字

2 標(biāo)簽

#畫(huà)圖 (對(duì)數(shù)變換后)
Par(cex=0.7,mex=0.7) #character (cex) & margin (mex) expansion
plot(log(body),log(brain))
text(x=log(body), y=log(brain),labels=row.names(Animals), adj=1.5)# adj=0 implies left adjusted text

#畫(huà)圖 (對(duì)數(shù)變換后)
plot(log(body),log(brain))
identify(log(body),log(brain),row.names(Animals))

3 顏色畫(huà)圖函數(shù)

view.colours = function(){
plot(1, 1, xlim=c(0,14), ylim=c(0,3), type="n", axes=F, xlab="",ylab="")
text(1:6, rep(2.5,6), paste(1:6), col=palette()[1:6], cex=2.5)
text(10, 2.5, "Default palette", adj=0)
rainchars = c("R","O","Y","G","B","I","V")
text(1:7, rep(1.5,7), rainchars, col=rainbow(7), cex=2.5)
text(10, 1.5, "rainbow(7)", adj=0)
cmtxt = substring("cm.colors", 1:9,1:9)
# Split "cm.colors" into its 9 characters
text(1:9, rep(0.5,9), cmtxt, col=cm.colors(9), cex=3)
text(10, 0.5, "cm.colors(9)", adj=0)
}
view.colours()

4 多線

高級(jí)低級(jí)函數(shù)畫(huà)圖

x <- seq(-pi, pi, len = 65)
plot(x, sin(x), type = "l", ylim = c(-1.2, 1.8), col = 3, lty = 2)
points(x, cos(x), pch = 3, col = 4)
lines(x, tan(x), type = "b", lty = 1, pch = 4, col = 6)
title("legend(..., lty = c(2, -1, 1), pch = c(-1,3,4), merge = TRUE)", cex.main = 1.1)
# 注意圖例書(shū)寫(xiě)方式
legend(-1, 1.9, c("sin", "cos", "tan"), col = c(3,4,6), lty = c(2, -1, 1), pch = c(-1, 3, 4), merge = TRUE, bg='gray90')

matplot畫(huà)圖

matplot :用矩陣的列畫(huà)多線圖

Usage:

matplot(x, y, type = "p", lty = 1:5, lwd = 1, lend = par("lend"),
 pch = NULL,
 col = 1:6, cex = NULL, bg = NA,
 xlab = NULL, ylab = NULL, xlim = NULL, ylim = NULL,
 ..., add = FALSE, verbose = getOption("verbose"))
require(grDevices)
matplot((-4:5)^2, main = "Quadratic") # almost identical to plot(*)
sines <- outer(1:20, 1:4, function(x, y) sin(x / 20 * pi * y))
matplot(sines, pch = 1:4, type = "o", col = rainbow(ncol(sines)))
matplot(sines, type = "b", pch = 21:23, col = 2:5, bg = 2:5,
 main = "matplot(...., pch = 21:23, bg = 2:5)")

5 時(shí)間序列圖

x=runif(100)
x=ts(x,start=1960+(3/12),frequency=12)#構(gòu)造時(shí)間序列frequency=12即按個(gè)月份構(gòu)造
options(digits=2)
x
 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1960  0.444 0.849 0.459 0.659 0.277 0.268 0.958 0.926 0.595
1961 0.250 0.769 0.111 0.944 0.593 0.459 0.670 0.331 0.045 0.694 0.473 0.227
1962 0.037 0.181 0.562 0.455 0.419 0.968 0.288 0.187 0.143 0.548 0.437 0.280
1963 0.149 0.623 0.937 0.108 0.755 0.077 0.963 0.781 0.660 0.458 0.787 0.176
1964 0.997 0.650 0.045 0.849 0.018 0.744 0.148 0.964 0.844 0.660 0.080 0.303
1965 0.954 0.217 0.909 0.658 0.991 0.797 0.020 0.363 0.183 0.332 0.793 0.676
1966 0.459 0.270 0.813 0.818 0.138 0.780 0.679 0.029 0.553 0.895 0.548 0.480
1967 0.898 0.212 0.299 0.223 0.637 0.167 0.102 0.424 0.438 0.058 0.048 0.474
1968 0.254 0.381 0.532 0.089 0.825 0.337 0.382
plot(x,main="Time series")

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

最新評(píng)論