99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁(yè)精彩閱讀(R語(yǔ)言)圖形過(guò)程
(R語(yǔ)言)圖形過(guò)程
2018-03-06
收藏

R語(yǔ)言)圖形過(guò)程

在Windows下用window()命令可以打開(kāi)圖形窗口。

12.1 高級(jí)繪圖命令

    高級(jí)繪圖函數(shù),由函數(shù)參數(shù)提供數(shù)據(jù)生成一幅完整的圖形。其中適當(dāng)?shù)淖鴺?biāo)軸,標(biāo)簽和標(biāo)題都自動(dòng)生成了(除非你另外指定了)。高級(jí)繪圖命令每次都生成一幅新的圖形,清除當(dāng)前的圖形(如果需要的話)。

1  plot()函數(shù)

這是一個(gè)通用函數(shù):生成圖形的類(lèi)型取決于第一個(gè)參數(shù)的類(lèi)型或類(lèi)別(class)。
plot(x,y)  plot(xy):
如果x,y是向量,plot(x,y)生成一幅y對(duì)x的散點(diǎn)圖。用包含兩個(gè)元素x,y的一個(gè)列表或一個(gè)兩列的矩陣作為一個(gè)參數(shù)(第二種形式那樣的)也能達(dá)成相同的效果。
plot(x):
如果x是一個(gè)時(shí)間序列,這個(gè)命令生成一個(gè)時(shí)間序列圖,如果x是一個(gè)數(shù)值型向量,則生成一個(gè)向量值對(duì)它們向量索引的土,而如果x是一個(gè)復(fù)向量,則生成一個(gè)向量中元素的虛部對(duì)實(shí)部的圖。
plot(f)   plot(f,y):
f是一個(gè)因子對(duì)象,y是一個(gè)數(shù)值型向量。第一種形式生成一個(gè)f的條形圖;第二種形式生成y對(duì)應(yīng)于f各個(gè)水平的箱線圖。
plot(df)   plot( expr)    plot(y expr):
df是一個(gè)數(shù)據(jù)幀,y是任意對(duì)象,expr是由對(duì)象名稱組成的列表,分隔符'+'(例如,a + b + c)。前兩種形式生成分布式的圖形,第一種是數(shù)據(jù)幀中的變量,第二種是一系列被命名的對(duì)象。第三種形式生成y對(duì)expr中每個(gè)對(duì)象的圖。

2 顯示多元數(shù)據(jù)

如果X是一個(gè)數(shù)值矩陣或數(shù)據(jù)幀,下面的命令
> pairs(X) 
生成一個(gè)配對(duì)的散點(diǎn)圖矩陣,矩陣由X中的每列的列變量對(duì)其他各列列變量的散點(diǎn)圖組成,得到的矩陣中每個(gè)散點(diǎn)圖行、列長(zhǎng)度都是固定的。

當(dāng)問(wèn)題涉及到三、四個(gè)變量時(shí),使用coplot更好些。如果a和b是數(shù)值向量,c是數(shù)值向量或因子對(duì)象(全都是相同長(zhǎng)度的),下面的命令
> coplot(a ~ b | c)
對(duì)應(yīng)c的某些給定值生成數(shù)個(gè)a對(duì)b的散點(diǎn)圖。當(dāng)c是一個(gè)因子時(shí),這個(gè)命令也就是對(duì)c的每個(gè)水平生成a對(duì)b的散點(diǎn)圖。當(dāng)c是數(shù)值向量的時(shí)候,這個(gè)數(shù)值向量被分為一系列的條件區(qū)間(conditioning intervals),對(duì)應(yīng)c的每個(gè)區(qū)間生成一個(gè)a對(duì)b的散點(diǎn)圖。區(qū)間的數(shù)量和位置可以通過(guò)coplot()的參數(shù)given.values來(lái)控制,函數(shù)co.intervals()也可以用來(lái)選擇區(qū)間。我們也可以使用兩個(gè)給定變量通過(guò)命令
>coplot(a ~ b | c+d)
對(duì)c和d的每個(gè)聯(lián)合條件區(qū)間生成a對(duì)b的散點(diǎn)圖。

函數(shù)coplot()和pairs()都可以使用參數(shù)panel=,這個(gè)參數(shù)可以用來(lái)定制我們得到的圖形類(lèi)型。默認(rèn)的是points()函數(shù),生成一個(gè)散點(diǎn)圖,不過(guò)通過(guò)在參數(shù)panel=中提供某些其它的低級(jí)圖形函數(shù),我們可以生成需要的各種圖形。一個(gè)很有用的函數(shù)例子是panel.smooth()。

3 顯示圖形

qqnorm(x)   qqline(x)    qqplot(x,y)
分布比較圖。第一種形式生成向量x對(duì)期望正態(tài)分?jǐn)?shù)(一個(gè)正態(tài)記分圖),第二個(gè)在上面的圖上添加一條穿過(guò)分布分位點(diǎn)和數(shù)據(jù)分位點(diǎn)的直線。第三個(gè)命令生成x的分位點(diǎn)對(duì)y分位點(diǎn)圖,用于分別比較它們的分布。

hist(x)     hist(x,nclass=n)       hist(x,breaks=b, . . . )
生成數(shù)值變量x的直方圖。通常會(huì)自動(dòng)選定一個(gè)合理的類(lèi)別數(shù),不過(guò)可以通過(guò)nclass=參數(shù)來(lái)指定一個(gè)推薦值?;蛘咄ㄟ^(guò)參數(shù)breaks=來(lái)指定分界點(diǎn)。如果給定了probability=TRUE參數(shù),那么條形圖代表相對(duì)頻數(shù)而不是累計(jì)數(shù)。

dotchart(x, . . . )
創(chuàng)建一個(gè)x中數(shù)據(jù)的點(diǎn)圖(dotchart)。點(diǎn)圖中y軸給出x中數(shù)據(jù)的標(biāo)簽,x軸給出它們的值。它允許對(duì)落入某一特定區(qū)間的所有數(shù)據(jù)項(xiàng)方便的進(jìn)行可視化選擇。

image(x,y,z, . . . )     contour(x,y,z, . . . )    persp(x,y,z, . . . )
生成三個(gè)變量的圖。函數(shù)image是用不同的顏色繪制一些矩形方格來(lái)展示z的值,函數(shù)contour通過(guò)繪制等高線來(lái)展示z的值,函數(shù)persp繪制一個(gè)3D面。

4 參數(shù)配置

add=TRUE      強(qiáng)制函數(shù)按照低級(jí)圖形函數(shù)的方式操作,將圖形置于當(dāng)前圖形上(僅對(duì)某些函數(shù)有效)。
axes=FALSE       暫時(shí)禁止坐標(biāo)軸的生成|以便使用axis()函數(shù)添加你自己定制的坐標(biāo)軸。默認(rèn)情況是axes=TRUE,即包含坐標(biāo)軸。
log="x"   log="y"   log="xy"      令x,y或者兩者全都對(duì)數(shù)化。這個(gè)參數(shù)對(duì)許多函數(shù)都有效,不過(guò)不是全部。
type=          參數(shù)type=控制所生成圖形的類(lèi)型:
        type="p" 繪制單獨(dú)的點(diǎn)(默認(rèn)值)
        type="l" 繪制線
        type="b" 繪制由線連接的點(diǎn)(both)
        type="o" 將點(diǎn)繪在線上
        type="h" 繪制從點(diǎn)到零軸的垂線(high-density)
        type="s" 階梯式圖。第一種形式中,點(diǎn)由垂線的頂部定義;第二種形式里用底部定義。
        type="n" 不繪制。不過(guò)坐標(biāo)軸是繪出的(默認(rèn)情況)而且要根據(jù)數(shù)據(jù)繪出坐標(biāo)系統(tǒng)。用來(lái)給后續(xù)的低級(jí)圖形函數(shù)創(chuàng)建圖形作基礎(chǔ)。
xlab=string    ylab=string          x軸或y軸的標(biāo)簽。使用這些參數(shù)來(lái)改變默認(rèn)的標(biāo)簽,通常的默認(rèn)值是調(diào)用高級(jí)繪圖函數(shù)時(shí)所使用對(duì)象的名稱。
main=string          圖表標(biāo)題,位于圖形的頂部,大字體顯示。 
sub=string         子標(biāo)題,位于x軸下面,用較小的字體顯示。

12.2   低級(jí)繪圖命令

有些時(shí)候高級(jí)繪圖函數(shù)并不能很精確的生成我們想要的圖形。這種情況下,我們可以通過(guò)低級(jí)繪圖命令在當(dāng)前圖形上添加信息(例如,點(diǎn)、線或文本)。

points(x,y)    lines(x,y)
在當(dāng)前圖形上添加點(diǎn)或線。函數(shù)plot()的參數(shù)type=也可以用于這些函數(shù)(默認(rèn)的是"p"代表points()和"l"代表lines())。

text(x,y,labels, . . . )
給定點(diǎn)坐標(biāo)x,y,在該點(diǎn)添加文本。通常labels是一個(gè)整數(shù)或字符向量,其中l(wèi)abels[i]出現(xiàn)在點(diǎn)(x[i],y[i])。默認(rèn)值是1:length(x)。
Note: 這個(gè)函數(shù)通常用于這樣的序列中
 > plot(x, y, type="n"); text(x, y, names)
圖形參數(shù)type="n"阻止了點(diǎn)的生成,但是建立了坐標(biāo)軸,由函數(shù)text()提供字符向量names所指定的特定字符。

abline(a, b)   abline(h=y)   abline(v=x)    abline(lm.obj)
在當(dāng)前圖上添加一條斜率為b,截距為a的直線。h=y在圖形指定的高度上繪制一條貫穿圖形的水平線,同樣的,v=x在x軸的指定位置繪制一條貫穿的垂線。而lm.obj是一個(gè)包含coefficients組件的列表,該組件的長(zhǎng)度為2,分別當(dāng)作截距和斜率。

polygon(x, y, . . . )
繪制一個(gè)多邊形,其頂點(diǎn)由(x,y)指定。同時(shí)還(可選的)可以加上陰影線,如果圖形設(shè)備允許的話還可以將多邊形填充。

legend(x, y, legend, . . . )
這當(dāng)前圖形的指定位置添加圖例。繪制的字符,線條類(lèi)型,顏色等等由字符向量legend指定。除此之外至少還要給出一個(gè)參數(shù)v,與繪圖單元的相應(yīng)值,分別有:
legend( , fill=v)填充方框的顏色
legend( , col=v)繪制點(diǎn)線的顏色
legend( , lty=v)線條類(lèi)型
legend( , lwd=v)線條寬度
legend( , pch=v)繪制字符(字符向量)

title(main,sub)
在當(dāng)前圖形的頂部用大字題添加一個(gè)標(biāo)題main,在底部用較小的字體添加子標(biāo)題sub。

axis(side, . . . )
在當(dāng)前圖形的指定邊上添加坐標(biāo),在哪個(gè)邊上由第一個(gè)參數(shù)指定(1到4,從底部按照順時(shí)針順序)。其他參數(shù)控制坐標(biāo)的位置|在圖形內(nèi)或圖形外,以及標(biāo)記的位置和標(biāo)簽。適合在調(diào)用參數(shù)為axes=FALSE的函數(shù)plot()后添加定制的坐標(biāo)軸。

低級(jí)繪圖函數(shù)通常都需要一些位置信息(例如,x,y坐標(biāo))來(lái)決定在哪里添加新的元素。坐標(biāo)以用戶坐標(biāo)(user coordinates)的形式給出,這個(gè)坐標(biāo)系是根據(jù)所提供的數(shù)據(jù)由之前的高級(jí)繪圖語(yǔ)句定義的。需要x,y參數(shù)的地方還可以選用一個(gè)單獨(dú)的參數(shù),即一個(gè)由名為x,y的元素組成的列表。相似的,一個(gè)兩列的矩陣也可以。像locator()(后面會(huì)提到)這樣的函數(shù)也可以按照這種方式交互的指定圖形中的位置。

添加數(shù)學(xué)注釋
某些情況下需要在圖形中加入數(shù)學(xué)符號(hào)或公式。在R中可以通過(guò)在text, mtext,axis或title中指定一個(gè)表達(dá)式來(lái)實(shí)現(xiàn)。例如,下面的代碼繪制了二項(xiàng)概率函數(shù)的公式:
> text(x, y, expression(paste(bgroup("(", atop(n, x), ")"),p^x, q^{n-x})))
更多的信息,包括其特性的一個(gè)完整列表可以在R中通過(guò)下面的命令得到:
> help(plotmath)
> example(plotmath)

添加Hershey矢量字體
> help(Hershey)
> example(Hershey)

12.3 圖形的交互

R提供了函數(shù),使用戶可以通過(guò)鼠標(biāo)從圖形中釋放信息或添加信息。

locator(n,type)
等待用戶使用鼠標(biāo)左鍵在當(dāng)前圖形上選擇位置。直到n(默認(rèn)是512)個(gè)點(diǎn)都選完或者點(diǎn)擊了鼠標(biāo)另一個(gè)鍵(Unix,Windows),在Mac下用鼠標(biāo)點(diǎn)擊圖形窗口外的部分也可以結(jié)束。參數(shù)type的效果和在高級(jí)繪圖函數(shù)中使用時(shí)是一樣的,即在選擇的點(diǎn)繪制指定的圖形。默認(rèn)情況是不繪制圖形。函數(shù)locator()將所選點(diǎn)的坐標(biāo)返回到一個(gè)列表中,列表包含x,y兩個(gè)組件。
通常locator()在調(diào)用的時(shí)候并不帶參數(shù)。這個(gè)功能在為圖例或標(biāo)簽這樣的圖形元素選擇位置時(shí)比較有用,尤其是這些位置不好通過(guò)計(jì)算得到的時(shí)候。舉個(gè)例子,如果要在一個(gè)野點(diǎn)附近添加一些信息,可以使用下面的命令
> text(locator(1), "Outlier", adj=0)

identify(x, y, labels)
允許用戶在x,y(使用鼠標(biāo)左鍵)定義的點(diǎn)附近繪制相應(yīng)的labels的組件(如果沒(méi)有給出labels就給出該點(diǎn)的序號(hào)),突顯該點(diǎn)。當(dāng)鼠標(biāo)的另一個(gè)鍵被點(diǎn)擊時(shí)(Unix,Windows)返回被選點(diǎn)的序號(hào),在Mac下通過(guò)點(diǎn)擊圖形窗口外來(lái)實(shí)現(xiàn)這個(gè)效果。
有時(shí)我們更想確定圖形中的點(diǎn),而非它們的位置。例如,我們可能希望從圖示中選出某些感興趣的觀測(cè)點(diǎn),然后進(jìn)行某些操作。通過(guò)兩個(gè)數(shù)值向量x,y給定一系列坐標(biāo)(x; y),我們可以使用identify()函數(shù):
> plot(x,y) > identify(x,y)
函數(shù)identify()本身不繪圖,但是允許用戶移動(dòng)鼠標(biāo),在某點(diǎn)附近點(diǎn)擊左鍵。離鼠標(biāo)指針最近的點(diǎn)將被突顯,并標(biāo)出其序號(hào)(也就是它在向量x/y中的位置)?;蛘呤褂胕dentify()的labels參數(shù),把某些信息(例如案例名稱)作為突顯的標(biāo)志;或者通過(guò)plot=FALSE參數(shù)取消所有突顯標(biāo)志。當(dāng)選點(diǎn)的過(guò)程結(jié)束后,identify()返回所選點(diǎn)的序號(hào);用戶可以使用這些序號(hào)從x和y中釋放所選的點(diǎn)。

12.4 使用圖形參數(shù)

通過(guò)圖形參數(shù)可以定制圖形顯示的幾乎所有方面。R包含大量的圖形參數(shù),可以控制的包括線條類(lèi)型,顏色,圖標(biāo)排列,文本對(duì)齊等等。

1 持續(xù)性變更 (Permanent changes): par()函數(shù)

通過(guò)par()函數(shù)設(shè)定圖形參數(shù)的值會(huì)持續(xù)性的更改參數(shù)的值,也就是說(shuō)這之后(在當(dāng)前設(shè)備上)所有對(duì)圖形函數(shù)的調(diào)用都受到新值的影響。
函數(shù)par()用于存取和修改當(dāng)前圖形設(shè)備的圖形參數(shù)列表。
par()不帶任何參數(shù),返回當(dāng)前設(shè)備所有圖形參數(shù)和它們的值的列表。
par(c("col","lty"))
參數(shù)為一個(gè)字符向量,僅返回參數(shù)中指定的圖形參數(shù)(也是作為一個(gè)列表)。
par(col=4, lty=2)
帶指定參數(shù)(或一個(gè)列表型參數(shù)),設(shè)定指定圖形參數(shù)的值,并將參數(shù)的原始值作為一個(gè)列表返回。
所以如果想設(shè)定參數(shù)繪制一些圖形后再恢復(fù)成原來(lái)的設(shè)定,可以這么做:
> oldpar <- par(col=4, lty=2) 
. . . plotting commands . . . 
> par(oldpar)

2 臨時(shí)性變更:圖形函數(shù)的參數(shù)

圖形參數(shù)也可以作為(幾乎)所有圖形函數(shù)的命名參數(shù)。這種方式的效果和用于par()函數(shù)的效果是一樣的,只不過(guò)這種改變只在函數(shù)調(diào)用的區(qū)間內(nèi)有效。比如:
> plot(x, y, pch="+")
生成一個(gè)以加號(hào)作為繪圖符號(hào)的散點(diǎn)圖,而不改變后續(xù)圖形的默認(rèn)的繪圖符號(hào)。

3 圖形參數(shù)列表

A  圖形元素
R圖表由點(diǎn)、線、文本和多邊形(填充區(qū))組成。下面的圖形參數(shù)控制了圖形元素的繪制:
pch="+" 用來(lái)繪點(diǎn)的字符。這個(gè)默認(rèn)值隨不同的圖形驅(qū)動(dòng)是不同的,不過(guò)通常都是'±'。除非使用"."作為繪圖字符,否則繪制的點(diǎn)都會(huì)比適當(dāng)?shù)奈恢酶咭稽c(diǎn)或者低一點(diǎn),而不是恰好在指定位置。
pch=4當(dāng)給定一個(gè)0到18的整數(shù)時(shí),會(huì)生成一個(gè)特殊的繪圖符號(hào)。通過(guò)下面的命令可以看這些符號(hào)都有什么。
> legend(locator(1), as.character(0:18), pch=0:18)
lty=2 線條類(lèi)型。并不是所有圖形設(shè)備都支持多種線條類(lèi)型(在那些支持的設(shè)
備上也不全一樣),不過(guò)線條類(lèi)型1始終是實(shí)線,2及以上的是點(diǎn)、劃線或者它們的組合。
lwd=2 線條寬度。所需的線條寬度,是"標(biāo)準(zhǔn)"線條寬度的倍數(shù)。對(duì)line()等函數(shù)繪制的線條和坐標(biāo)軸都有效果。
col=2 點(diǎn)、線、文本、填充區(qū)和圖像使用的顏色。每種圖形元素都有其可用的顏色列表,這個(gè)參數(shù)的值就是顏色在列表中的序號(hào)。顯然,這個(gè)參數(shù)值對(duì)有限的一類(lèi)設(shè)備有效。
font=2 指定文本所使用字體的一個(gè)整數(shù)。如果可能的話,設(shè)備驅(qū)動(dòng)會(huì)把1對(duì)應(yīng)普通文本,2對(duì)應(yīng)粗體,3對(duì)應(yīng)斜體,4對(duì)應(yīng)粗斜體。
font.axis   font.lab    font.main   font.sub 這幾個(gè)參數(shù)分別指定坐標(biāo)軸注釋?zhuān)瑇,y軸的標(biāo)簽,主、副標(biāo)題所用的字體。
adj=-0.1 文本對(duì)齊和繪圖位置有關(guān)。0代表左對(duì)齊,1代表右對(duì)齊,0.5代表水平的中間位置。當(dāng)前的值使會(huì)圖位置到左端距離的比例,所以-0.1在文本和繪圖位置之間留10%的空白。
cex=1.5 字符縮放。這個(gè)值是所需文本字符(包括繪圖字符)的大小,與默認(rèn)文本大小相關(guān)。

B  坐標(biāo)軸和標(biāo)記
很多R的高級(jí)圖形都有坐標(biāo)軸,你可以使用低級(jí)圖形函數(shù)axis()自己創(chuàng)建坐標(biāo)軸。坐標(biāo)軸包含三個(gè)主要組件:軸線axis line(線條類(lèi)型由參數(shù)lty控制),標(biāo)記tick mark(沿著軸線劃分單元),標(biāo)號(hào)tick label(用來(lái)標(biāo)出這些單元)。這些組件可以用下面這些參數(shù)定制。
lab=c(5,7,12)前兩個(gè)數(shù)字分別是x和y軸上所要?jiǎng)澐值膮^(qū)間數(shù)。第三個(gè)數(shù)字是坐標(biāo)軸標(biāo)簽的長(zhǎng)度,用字符數(shù)來(lái)衡量(包括小數(shù)點(diǎn))。參數(shù)的值如果選得太小可能導(dǎo)致所有標(biāo)號(hà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)軸的距離,單位是文本行(text lines)。第二個(gè)組件是到標(biāo)號(hào)的距離,最后一個(gè)是軸的巍直到軸線的距離(一般都是0)。正數(shù)代表繪圖區(qū)域外,負(fù)數(shù)代表區(qū)域內(nèi)。
tck=0.01 標(biāo)號(hào)的長(zhǎng)度,繪圖區(qū)域大小的一個(gè)分?jǐn)?shù)作單位。當(dāng)tck比較小時(shí)(小于0.5),就強(qiáng)制x和y軸上的標(biāo)記為相同大小。tck=1就是生成網(wǎng)格線。取負(fù)值時(shí)標(biāo)記畫(huà)向繪圖區(qū)域外。內(nèi)部標(biāo)記可以使用tck=0.01和mgp=c(1,-1.5,0)。
xaxs="s"   yaxs="d" 分別是x、y軸的類(lèi)型。如果是s(standard)或e(extended)類(lèi)型,那最大和最小的標(biāo)記都始終在數(shù)據(jù)區(qū)域之外。如果有某個(gè)點(diǎn)離邊界非常近,那么擴(kuò)展型(extended)的軸會(huì)稍稍擴(kuò)展一下。這種類(lèi)型的軸有時(shí)會(huì)在邊界附近留出大片空白。而i(internal)或r(默認(rèn)值)類(lèi)型的軸,標(biāo)記始終在數(shù)據(jù)區(qū)域內(nèi),不過(guò)r類(lèi)型會(huì)在邊界留出少量空白。
如果這個(gè)參數(shù)設(shè)為d,就鎖定當(dāng)前軸,對(duì)之后繪制的所有圖形都用這個(gè)軸(直到參數(shù)被重新設(shè)定為其他的那幾個(gè)值)。這個(gè)參數(shù)適用于生成一系列固定尺度的圖。

C  圖邊緣(Figure margins)
在R中一個(gè)單獨(dú)圖形,圖(figure),包含一個(gè)繪圖區(qū)(plot region),以及環(huán)繞著這個(gè)區(qū)域的邊緣(其中可能含有坐標(biāo)軸標(biāo)簽、標(biāo)題等等),(通常)這兩部分以軸為邊界。
一個(gè)典型的圖是

控制圖的樣式的圖形參數(shù)包括:
mai=c(1,0.5,0.5,0)分別是底部,左側(cè),頂部,右側(cè)的寬度,單位是英寸。
mar=c(4,2,2,1)與mai相似,只是單位是文本行(text lines)。
由于更改一個(gè)就會(huì)改變另一個(gè)的值,所以在這個(gè)意義上,mai和mar是等價(jià)的。這個(gè)參數(shù)的默認(rèn)值通常都太大了;右側(cè)邊緣很少用到,如果沒(méi)標(biāo)題,頂部邊緣也不需要,左側(cè)和底部的邊緣應(yīng)當(dāng)足夠大,以容納坐標(biāo)軸和標(biāo)號(hào)。此外,默認(rèn)值并沒(méi)有考慮到設(shè)備表面的大小:比如,使用postscript()驅(qū)動(dòng),height=4參數(shù)時(shí),除非用mar,mai另外設(shè)定,否則圖的邊緣就要占上大約50%。使用多圖環(huán)境時(shí)(后面會(huì)提到)。邊緣會(huì)減少一半,不過(guò)這在多圖共用一頁(yè)的時(shí)候可能還不夠。

D 多圖環(huán)境
R允許在一頁(yè)上創(chuàng)建一個(gè)n£m的圖的陣列。每個(gè)圖由自己的邊緣,圖的陣列還有一個(gè)可選的外部邊緣,如下圖所示。

與多圖環(huán)境相關(guān)的圖形參數(shù)有:
mfcol=c(3, 2)    mfrow=c(2, 4)
   設(shè)定多圖陣列的大小。第一個(gè)值是行數(shù),第二個(gè)值是列數(shù)。這兩個(gè)參數(shù)唯一的區(qū)別是mfcol把圖按列排入,mfrow把圖按行排入。上圖所示的版式可用mfrow=c(3,2)創(chuàng)建;上圖顯示的是繪制四幅圖后的情況。
mfg=c(2, 2, 3, 2)
    當(dāng)前圖在多圖環(huán)境下的位置。前兩個(gè)數(shù)字是當(dāng)前圖的行、列數(shù);后兩個(gè)是其在多圖陣列中的行列數(shù)。這個(gè)參數(shù)用來(lái)在多圖陣列中跳轉(zhuǎn)。你甚至可以在后兩個(gè)數(shù)中使用和真值(true value)不同的值,在同一頁(yè)上得到大小不同的圖。
fig=c(4, 9, 1, 4)/10
    當(dāng)前圖在頁(yè)面的位置,取值分別是左下角到左邊界,右邊界,下、上邊界的距離與對(duì)應(yīng)邊的百分比數(shù)。給出的例子是一個(gè)頁(yè)面右下角的圖。這個(gè)參數(shù)可以設(shè)定圖在頁(yè)面的絕對(duì)位置。
oma=c(2, 0, 3, 0)   omi=(0, 0, 0.8, 0)  
       外部邊緣的大小。與mar和mai相似,第一個(gè)用文本行作單位,第二個(gè)以英寸作單位,從下方開(kāi)始按照順時(shí)針順序指定。
外部邊緣對(duì)頁(yè)標(biāo)題這類(lèi)東西很有用。文本可以通過(guò)帶outer=TRUE參數(shù)的mtext()函數(shù)加入外部邊緣。默認(rèn)情況下是沒(méi)有外部邊緣的因此必須通過(guò)oma或omi指定。
函數(shù)split.screen()和layout()可以對(duì)多個(gè)圖形作更復(fù)雜的排列。

12.6 設(shè)備驅(qū)動(dòng)

R幾乎可以在任何一種類(lèi)型的顯示器和打印設(shè)備上生成(不同質(zhì)量的)圖形。不過(guò),在這之前,需要告訴R要處理的是哪一種設(shè)備。這通過(guò)啟動(dòng)一個(gè)設(shè)備驅(qū)動(dòng)來(lái)完成。
設(shè)備驅(qū)動(dòng)通過(guò)調(diào)用設(shè)備驅(qū)動(dòng)函數(shù)來(lái)啟動(dòng)。
某些常用的設(shè)備驅(qū)動(dòng)有:
X11()[Unix] 使用X11視窗系統(tǒng)
windows()[Windows]   使用 Windows 視窗系統(tǒng) 
postscript()在PostScript打印機(jī)上打印或者創(chuàng)建PostScript圖形文件
pictex()生成一個(gè)LATEX文件
當(dāng)一個(gè)設(shè)備使用完之后,可以通過(guò)下面的命令終止設(shè)備驅(qū)動(dòng)
> dev.off()
這個(gè)命令可以確保設(shè)備已經(jīng)結(jié)束;例如,在某些硬拷貝的設(shè)備中,這個(gè)命令可以保證每頁(yè)都已經(jīng)完成,并且都被傳送到打印機(jī)了。

PostScript文檔
通過(guò)給postscript()函數(shù)帶上file參數(shù),我們可以把圖形以PostScript格式存儲(chǔ)到文件中。如果沒(méi)有給出horizontal=FALSE參數(shù),圖形是橫向的,你可以通過(guò)width和height參數(shù)控制圖形的大小(圖形會(huì)自動(dòng)適應(yīng))。例如,命令
> postscript("file.ps", horizontal=FALSE, height=5, pointsize=10)
為一個(gè)五英寸的圖生成一個(gè)包含PostScript代碼的文件,可以放在文當(dāng)中。如果命令中的指定的文件名已經(jīng)存在,將會(huì)被覆蓋。

多重圖形設(shè)備
每個(gè)對(duì)設(shè)備驅(qū)動(dòng)的新調(diào)用都會(huì)打開(kāi)一個(gè)新的圖形設(shè)備,在設(shè)備列表中加入新的一項(xiàng)。這個(gè)設(shè)備就成為當(dāng)前設(shè)備,圖形輸出就傳送到這個(gè)設(shè)備。
dev.list()      返回所有活動(dòng)中設(shè)備的序號(hào)和名稱。在列表位置1的設(shè)備始終是空設(shè)備(null device),這個(gè)設(shè)備不接收任何圖形命令。
dev.next()    dev.prev()     分別返回當(dāng)前設(shè)備的后一個(gè)和前一個(gè)設(shè)備的序號(hào)和名稱。
dev.set(which=k)     用來(lái)把當(dāng)前設(shè)備更改為設(shè)備列表中位置k的那個(gè)。返回設(shè)備的序號(hào)和標(biāo)簽。
dev.off(k)    終止圖形列表位置k的那個(gè)圖形設(shè)備。對(duì)于某些設(shè)備,比如postscript,這個(gè)命令會(huì)立刻打印文件或者正常結(jié)束文件,具體怎樣處理取決于設(shè)備是怎樣初始化的。
dev.copy(device,. . . ,which=k)      dev.print(device,. . . ,which=k)
建立一個(gè)設(shè)備k的拷貝。其中device是一個(gè)設(shè)備函數(shù),例如postscript,如果需要的話可以在'. . . '中指定其它的參數(shù),dev.print效果相似,不過(guò)復(fù)制的設(shè)備會(huì)立刻關(guān)閉,所以打印硬拷貝這樣的終止操作也會(huì)被立即執(zhí)行。
graphics.off()      終止列表中的所有圖形設(shè)備,空設(shè)備除外。


數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說(shuō)明請(qǐng)參見(jiàn):http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }