版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)內(nèi)容學(xué)習(xí)如何應(yīng)用R軟件解決繪圖問(wèn)題1、繪圖方法2、應(yīng)用實(shí)例3、實(shí)驗(yàn)作業(yè)
第六講圖形實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)內(nèi)容學(xué)習(xí)如何應(yīng)用R軟件解決繪圖問(wèn)題1、繪圖方法常用圖形S-PLUS有很強(qiáng)的圖形功能,它可以用簡(jiǎn)單的函數(shù)調(diào)用迅速作出數(shù)據(jù)的各種圖形,當(dāng)你熟悉了S圖形的技術(shù)之后也可以指定許多圖形選項(xiàng)按自己的要求定制圖形。它的另一個(gè)特色是同一個(gè)繪圖函數(shù)對(duì)不同的數(shù)據(jù)對(duì)象可以作出不同的圖形。例如,讀入cl數(shù)據(jù)框:c1=read.table("E://c1.txt",header=TRUE,sep="")names(cl);attach(cl);plot(Height)
或>plot(cl$Height)
繪制身高的散點(diǎn)圖(縱軸為身高值,橫軸為下標(biāo))。最常用的繪圖函數(shù)為plot(),用plot()作兩個(gè)變量x與y的散點(diǎn)圖,使用如下例的方法:>plot(Height,Weight,main="體重對(duì)身高的回歸",+xlab="身高",ylab="體重")常用圖形S-PLUS有很強(qiáng)的圖形功能,它可以用簡(jiǎn)單的函數(shù)調(diào)用R語(yǔ)言入門-圖形課件R語(yǔ)言入門-圖形課件為了繪制連線圖,只要在plot()函數(shù)中加type=“l(fā)”選項(xiàng),>plot((1:50)/50,log((1:50)/50),type="l")為了繪制連線圖,只要在plot()函數(shù)中加type=“l(fā)”選可以繪制變量的莖葉圖,Usage:stem(x,scale=1,width=80,atom=1e-08)Arguments:x:anumericvector.scale:Thiscontrolstheplotlength.width:Thedesiredwidthofplot.atom:atolerance.References:
Becker,R.A.,Chambers,J.M.andWilks,A.R.(1988)_TheNewSLanguage_.Wadsworth&Brooks/Cole.Examples:stem(islands)stem(log10(islands))可以繪制變量的莖葉圖,Usage:>stem(cl$Weight,scale=1,width=80,atom=1e-08)Thedecimalpointis1digit(s)totherightofthe|4|16|78|344550810|033223312|8314|0>sort(Weight)[1]50.577.083.084.084.084.585.090.098.099.5102.5102.5[13]112.0112.0112.5112.5128.0133.0150.0>stem(cl$Weight,scale=1,wi>stem(cl$Weight,scale=2,width=80,atom=1e-08)
Thedecimalpointis1digit(s)totherightofthe|5|16|7|78|344559|0810|03311|223312|813|3>sort(Weight)[1]50.577.083.084.084.084.585.090.098.099.5102.5102.5[13]112.0112.0112.5112.5128.0133.0150.0>stem(cl$Weight,scale=2,wi繪制一個(gè)變量的盒形圖,如:>boxplot(cl$Weight)繪制一個(gè)變量的盒形圖,如:>boxplot(cl$Wei可以繪制幾個(gè)變量并排的盒形圖,>boxplot(cl$Height~cl$Sex,data=cl)可以繪制幾個(gè)變量并排的盒形圖,>boxplot(cl$Height~cl$Sex,data=cl,col="lightgray");>boxplot(cl$Height~cl$Sex,dat用hist()函數(shù)可以繪制直方圖。例如:>hist(Weight)用hist()函數(shù)可以繪制直方圖。例如:>hist(Wei用qqnorm()函數(shù)繪制正態(tài)概率圖,如:
>qqnorm(Weight)用qqnorm()函數(shù)繪制正態(tài)概率圖,如:高級(jí)圖形函數(shù)S的圖形函數(shù)分為兩類:高級(jí)圖形函數(shù)――直接繪制圖形并可自動(dòng)生成坐標(biāo)軸等附屬圖形元素;低級(jí)圖形函數(shù)――可以修改已有的圖形或者為繪圖規(guī)定一些選擇項(xiàng)。高級(jí)圖形函數(shù)總是開(kāi)始一個(gè)新圖。下面我們介紹常用的高級(jí)圖形函數(shù),以及用來(lái)修飾這些高級(jí)圖形函數(shù)的常用可選參數(shù)。高級(jí)圖形函數(shù)S的圖形函數(shù)分為兩類:最常用的是plot()函數(shù)。比如,plot(x,y)(其中x,y是向量)對(duì)兩個(gè)變量畫散點(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ù)據(jù)框,則plot(d)對(duì)d的每?jī)蓚€(gè)變量之間作圖(散點(diǎn)圖等)。最常用的是plot()函數(shù)。比如,>load("F:/R/cl.RData")>plot(cl$Sex)>load("F:/R/cl.RData")如果X是一個(gè)數(shù)值型矩陣或數(shù)據(jù)框,用pairs(X)可以繪制每?jī)闪兄g的散點(diǎn)圖矩陣。這在變量個(gè)數(shù)不太多時(shí)可以同時(shí)看到多個(gè)變量的兩兩關(guān)系,變量太多時(shí)則圖示過(guò)小而看不清。協(xié)同圖(coplot)是一種多變量的探索性分析圖形。其形式為coplot(y~x|z),其中x和y是數(shù)值型向量,z是同長(zhǎng)度的因子。對(duì)z的每一水平,繪制相應(yīng)組的x和y的散點(diǎn)圖。如:>attach(cl)>coplot(Weight~Height|Sex)如果X是一個(gè)數(shù)值型矩陣或數(shù)據(jù)框,用pairs(X)可以繪制每R語(yǔ)言入門-圖形課件如果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)繪圖。如果z是一個(gè)數(shù)值型變量,則coplot()先對(duì)z的取值分組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)圖之外還畫一條擬合曲線。qqplot(x,y)把x和y的次序統(tǒng)計(jì)量分別畫在x軸和y軸以比較兩個(gè)變量的分布。hist(x)作向量x的直方圖。缺省時(shí)自動(dòng)確定分組,也可以用nclass=參數(shù)指定分組個(gè)數(shù),或者用breaks=參數(shù)指定一個(gè)分組點(diǎn)向量。如果指定了prob=T則縱軸顯示密度估計(jì)。S也可以作三維圖或等值線圖,函數(shù)為persp()和contour()。qqnorm(x),qqline(x),qqplot(x高級(jí)圖形函數(shù)的常用選項(xiàng)高級(jí)圖形函數(shù)有一些共同的選項(xiàng),作為函數(shù)的可選參數(shù)(自變量)。例如:>plot(x)>plot(x,main="Graphofx")其中的main就是一個(gè)可選參數(shù),用來(lái)指定圖形的標(biāo)題。沒(méi)有此選項(xiàng)時(shí)圖形就沒(méi)有標(biāo)題。這樣的選項(xiàng)還有高級(jí)圖形函數(shù)的常用選項(xiàng)高級(jí)圖形函數(shù)有一些共同的選項(xiàng),作為函數(shù)add=T使函數(shù)象低級(jí)圖形函數(shù)那樣不是開(kāi)始一個(gè)新圖形而是在原圖基礎(chǔ)上添加。axes=F暫不畫坐標(biāo)軸,隨后可以用axis()函數(shù)更精確地規(guī)定坐標(biāo)軸的畫法。缺省值是axes=T,即有坐標(biāo)軸。log="x"log="y"log="xy"把x軸,y軸或兩個(gè)坐標(biāo)軸用對(duì)數(shù)刻度繪制。type=type="p"type="l"type="b"type="o"type="h"type="s"type="S"type="n"規(guī)定繪圖方式:繪點(diǎn)畫線繪點(diǎn)并在中間用線連接繪點(diǎn)并畫線穿過(guò)各點(diǎn)從點(diǎn)到橫軸畫垂線階梯函數(shù);左連續(xù)階梯函數(shù);右連續(xù)不畫任何點(diǎn)、線,但仍畫坐標(biāo)軸并建立坐標(biāo)系,適用于后面用低級(jí)圖形函數(shù)作圖。xlab="字符串“ylab="字符串"main="字符串"sub="字符串"定義x軸和y軸的標(biāo)簽,缺省時(shí)使用對(duì)象名。圖形的標(biāo)題;圖形的小標(biāo)題,用較小字體畫在x軸下方。add=T使函數(shù)象低級(jí)圖形函數(shù)那樣不是開(kāi)始一個(gè)新圖形而是在原低級(jí)圖形函數(shù)高級(jí)圖形函數(shù)可以迅速簡(jiǎn)便地繪制常見(jiàn)類型的圖形,但是,某些情況下你可能希望繪制一些有特殊要求的圖形。比如,你希望坐標(biāo)軸按照自己的設(shè)計(jì)繪制,在已有的圖上增加另一組數(shù)據(jù),在圖中加入一行文本注釋,繪出多個(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ù)羅列如下:低級(jí)圖形函數(shù)高級(jí)圖形函數(shù)可以迅速簡(jiǎn)便地繪制常見(jiàn)類型的圖形,points(x,y)lines(x,y)在當(dāng)前圖形上疊加一組點(diǎn)或線??梢允褂胮lot()的type=參數(shù)來(lái)指定繪制方法,缺省時(shí)points()畫點(diǎn),lines()畫線。text(x,y,labels,...)在由坐標(biāo)x和y給出的位置標(biāo)出由labels指定的字符串。labels可以是數(shù)值型或字符型的向量,labels[i]在x[i],y[i]處標(biāo)出。abline(a,b)abline(h=y)abline(v=x)abline(
lm.obj)在當(dāng)前圖形上畫一條直線。兩個(gè)參數(shù)a,b分布給出截距和斜率。指定h=參數(shù)時(shí)繪制水平線,指定v=參數(shù)時(shí)繪制垂直線。以一個(gè)最小二乘擬合結(jié)果lm.obj作為參數(shù)時(shí)由lm.obj的$coefficients成員給出直線的截距和斜率。polygon(x,y,...)以由向量x給出的橫坐標(biāo)和向量y給出的縱坐標(biāo)為頂點(diǎn)繪制多邊形??梢杂胏ol=參數(shù)指定一個(gè)顏色填充多邊形內(nèi)部。points(x,y)在當(dāng)前圖形上疊加一組點(diǎn)或線??梢允褂胮>plot(c1$Height[c1$Sex=='男'],c1$Weight[c1$Sex=='男'],col='Blue')>points(c1$Height[c1$Sex=='女'],c1$Weight[c1$Sex=='女'],col='Red')>plot(c1$Height[c1$Sex=='男'],legend(x,y,legend,...)
legend(,angle=v)legend(,density=v)legend(,fill=v)legend(,col=v)legend(,lty=v)legend(,pch=v)legend(,marks=v)legend函數(shù)用來(lái)在當(dāng)前圖形的指定坐標(biāo)位置繪制圖例。圖例的說(shuō)明文字由向量legend提供。至少下面的v值要給出以確定要對(duì)什么圖例進(jìn)行說(shuō)明,v是長(zhǎng)度與legend相同的向量。angle參數(shù)指定幾種陰影斜角。density參數(shù)指定幾種陰影密度。fill參數(shù)指定幾種填充顏色。col參數(shù)指定幾種顏色。lty參數(shù)指定幾種線型。pch參數(shù)指定幾種散點(diǎn)符號(hào),為字符型向量。marks參數(shù)也指定幾種散點(diǎn)符號(hào),但使用散點(diǎn)符號(hào)數(shù)值代號(hào),為數(shù)值型向量。title(main,sub)繪制由main指定的標(biāo)題和由sub指定的小標(biāo)題。axis(side,...)繪制一條坐標(biāo)軸。這之前的繪圖函數(shù)必須已經(jīng)用axes=F選項(xiàng)抑制了自動(dòng)的坐標(biāo)軸。參數(shù)side指定在哪一邊繪制坐標(biāo)軸,取值為1到4,1為下邊,然后逆時(shí)針數(shù)??梢杂胊t=參數(shù)指定刻度位置,用labels參數(shù)指定刻度處的標(biāo)簽。legend(x,y,legend,...)le交互圖形函數(shù)S的低級(jí)圖形函數(shù)可以在已有圖形的基礎(chǔ)上添加新內(nèi)容,另外,S還提供了兩個(gè)函數(shù)locator和identify可以讓用戶通過(guò)在圖中用鼠標(biāo)點(diǎn)擊來(lái)確定位置。函數(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)類型,與plot()函數(shù)中的type參數(shù)用法相同,在鼠標(biāo)點(diǎn)擊處繪點(diǎn)(線、垂線,等等)。locator()的返回值是一個(gè)列表,有兩個(gè)變量(元素)x和y,分別保存點(diǎn)擊位置的橫坐標(biāo)和縱坐標(biāo)。交互圖形函數(shù)S的低級(jí)圖形函數(shù)可以在已有圖形的基礎(chǔ)上添加新內(nèi)例如,為了在已經(jīng)繪制的曲線圖中找一個(gè)空地方標(biāo)上一行文本,只要使用如下程序:
>text(locator(1),"Normaldensity",adj=0)text()函數(shù)的adj參數(shù)用一個(gè)數(shù)字表示文本串相對(duì)于給定的坐標(biāo)的畫法,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),如果只需要返回值而不想畫任何標(biāo)記則可以在調(diào)用此函數(shù)時(shí)加一個(gè)plot=F參數(shù)。例如,為了在已經(jīng)繪制的曲線圖中找一個(gè)空地方標(biāo)上一行文本,只要注意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]12101516注意identify()與locator()不同,locatR語(yǔ)言入門-圖形課件圖形參數(shù)的使用前面我們已經(jīng)看到了如何用main=,xlab=等參數(shù)來(lái)規(guī)定高級(jí)圖形函數(shù)的一些設(shè)置。在實(shí)際繪圖,特別是繪制用于演示或出版的圖形時(shí),S用缺省設(shè)置繪制的圖形往往不能滿足我們的要求。但是,S提供了一系列所謂圖形參數(shù),通過(guò)使用圖形參數(shù)可以修改圖形顯示的所有各方面的設(shè)置。圖形參數(shù)包括關(guān)于線型、顏色、圖形排列、文本對(duì)齊方式等各種設(shè)置。每個(gè)圖形參數(shù)有一個(gè)名字,比如col代表顏色,取一個(gè)值,比如col="red"是紅色。每個(gè)圖形設(shè)備有一套單獨(dú)的圖形參數(shù)。設(shè)置圖形參數(shù)分為兩種:永久設(shè)置與臨時(shí)設(shè)置。永久設(shè)置使用par()函數(shù)進(jìn)行設(shè)置,設(shè)置后在退出前一直保持有效;臨時(shí)設(shè)置則是在圖形函數(shù)中加入圖形參數(shù),如上面的例子:>text(locator(1),"Normaldensity",adj=0)中的adj參數(shù)。圖形參數(shù)的使用前面我們已經(jīng)看到了如何用main=,xlabpar()函數(shù)用來(lái)訪問(wèn)或修改當(dāng)前圖形設(shè)備的圖形參數(shù)。如果不帶參數(shù)調(diào)用,如:>par()結(jié)果為一個(gè)列表,列表的各元素名為圖形參數(shù)的名字,元素值為相應(yīng)圖形參數(shù)的取值。如果調(diào)用時(shí)指定一個(gè)圖形參數(shù)名的向量作為參數(shù),則只返回被指定的圖形參數(shù)的列表:>par(c("col","lty"))>par('col.axis')[1]"black"調(diào)用時(shí)指定名字為圖形參數(shù)名的有名參數(shù),則修改指定的圖形參數(shù),并返回原值的列表:>oldpar=par(col=4,lty=2)>oldparpar()函數(shù)用來(lái)訪問(wèn)或修改當(dāng)前圖形設(shè)備的圖形參數(shù)。如果不帶因?yàn)橛胮ar()修改圖形參數(shù)是保持到退出以前都有效的,而且即使是在函數(shù)內(nèi)此修改仍是全局的,所以我們可以利用如下的慣用法,在完成任務(wù)后恢復(fù)原來(lái)的圖形參數(shù):>oldpar=par(col=4,lty=2)…(需要修改圖形參數(shù)的繪圖任務(wù))
>par(oldpar)#恢復(fù)原始的圖形參數(shù)
除了象上面那樣用par()函數(shù)永久修改圖形參數(shù),我們還可以在幾乎任何圖形函數(shù)中指定圖形參數(shù)作為有名參數(shù),這樣的修改是臨時(shí)的,只對(duì)此函數(shù)起作用。例如:>plot(x,y,pch="+")
就用圖形參數(shù)pch指定了繪散點(diǎn)的符號(hào)為加號(hào)。這個(gè)設(shè)定只對(duì)這一張圖有效,對(duì)以后的圖形沒(méi)有影響。因?yàn)橛胮ar()修改圖形參數(shù)是保持到退出以前都有效的,而且即圖形參數(shù)詳解鑒于繪制有特殊需要的圖形是S的一個(gè)強(qiáng)項(xiàng),而使用圖形參數(shù)是完成此類任務(wù)的重要手段,我們?cè)谶@里較詳細(xì)地介紹S的各種圖形參數(shù)。這些圖形參數(shù)可以大體上分為以下的幾個(gè)大類,我們將分別介紹:圖形元素控制坐標(biāo)軸與坐標(biāo)刻度圖形邊空一頁(yè)多圖圖形參數(shù)詳解鑒于繪制有特殊需要的圖形是S的一個(gè)強(qiáng)項(xiàng),而使用一、圖形元素圖形由點(diǎn)、線、文本、多邊形等元素構(gòu)成。下列的圖形參數(shù)用來(lái)控制圖形元素的繪制細(xì)節(jié):pch="+"
pch=4指定用于繪制散點(diǎn)的符號(hào)。繪制的點(diǎn)往往略高于或低于指定的坐標(biāo)位置,僅pch=“.”無(wú)這個(gè)問(wèn)題。如果pch的值為從0到18之間的一個(gè)數(shù)字,將使用特殊的繪點(diǎn)符號(hào)。下例可以顯示所有特殊繪點(diǎn)符號(hào):>plot(c(0,100),c(0,100),type="n",axes=F,xlab='',ylab='')>legend(10,90,as.character(0:9),pch=0:9)>legend(50,90,as.character(10:18),pch=10:18)一、圖形元素圖形由點(diǎn)、線、文本、多邊形等元素構(gòu)成。下列的圖形>plot(c(0,100),c(0,100),type="n",axes=F,xlab='',ylab='')>legend(10,90,as.character(0:9),pch=0:9)>legend(50,90,as.character(10:18),pch=10:18)
>plot(c(0,100),c(0,100),tlty=2指定畫線用的線型。缺省值lty=1是實(shí)線。從2開(kāi)始是各種虛線。lwd=2指定線粗細(xì),以標(biāo)準(zhǔn)線粗細(xì)為單位。這個(gè)參數(shù)影響數(shù)據(jù)曲線的線寬以及坐標(biāo)軸的線寬。下例繪制正弦曲線圖:>oldpar=par(lwd=2,col=‘blue’,lty=2)>x=(0:100)/100*2*pi>plot(x,sin(x),type="l",axes=F)>abline(h=0)>abline(v=0)>par(oldpar)col=2指定顏色,可應(yīng)用于繪點(diǎn)、線、文本、填充區(qū)域、圖象。顏色值也可以用象"red","blue"這樣的顏色名指定。lty=2指定畫線用的線型。缺省值lty=1是實(shí)線。從2開(kāi)始R語(yǔ)言入門-圖形課件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ù)。font=2用來(lái)指定字體的整數(shù)。一般font=1是正體,2是二、坐標(biāo)軸與坐標(biāo)刻度許多高級(jí)圖形帶有坐標(biāo)軸,還可以先不畫坐標(biāo)軸然后用axis()單獨(dú)加。函數(shù)box()用來(lái)畫坐標(biāo)區(qū)域四周的框線。坐標(biāo)軸包括三個(gè)部件:軸線(用lty可以控制線型),刻度線,刻度標(biāo)簽。它們可以用如下的圖形參數(shù)來(lái)控制:lab=c(5,7,12)第一個(gè)數(shù)為x軸希望畫幾個(gè)刻度線,第二個(gè)數(shù)為y軸希望畫幾個(gè)刻度線,這兩個(gè)數(shù)是建議性的;第三個(gè)數(shù)是坐標(biāo)刻度標(biāo)簽的寬度為多少個(gè)字符,包括小數(shù)點(diǎn),這個(gè)數(shù)太小會(huì)使刻度標(biāo)簽四舍五入成一樣的值。二、坐標(biāo)軸與坐標(biāo)刻度許多高級(jí)圖形帶有坐標(biāo)軸,還可以先不畫坐標(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í)際畫的坐標(biāo)軸的距離,通常是0。tck=0.01坐標(biāo)軸刻度線長(zhǎng)度,單位是繪圖區(qū)域大小,值為占繪圖區(qū)域的比例。tck小于0.5時(shí)x軸和y
軸的刻度線將統(tǒng)一到相同的長(zhǎng)度。取1時(shí)即畫格子線。取負(fù)值時(shí)刻度線畫在繪圖區(qū)域的外面。las=1坐標(biāo)刻度標(biāo)簽的方向。0表示總是平行于坐標(biāo)mgp=cxaxs="s"yaxs="d"控制x軸和y軸的畫軸方法。取值為"s"(即standard)或"e"(即extended)的時(shí)候數(shù)據(jù)范圍控制在最小刻度和最大刻度之間。取"e"時(shí)如果有數(shù)據(jù)點(diǎn)十分靠近邊緣軸的范圍會(huì)略微擴(kuò)大。這種畫軸方式有時(shí)會(huì)在軸的一邊留下太大的空白。取值為“i”(即internal)或“r”(此為缺省)使得刻度線都落在數(shù)據(jù)范圍內(nèi)部,而“r”方式所留的邊空較小。取值設(shè)為"d"時(shí)會(huì)鎖定此坐標(biāo)軸,后續(xù)的圖形都使用與它完全相同的坐標(biāo)軸,這在要生成一系列可比較的圖形的時(shí)候是有用的。要解除鎖定需要把這個(gè)圖形參數(shù)設(shè)為其它值。xaxs="s"控制x軸和y軸的畫軸方法。三、圖形邊空
三、圖形邊空S中一個(gè)單獨(dú)的圖由繪圖區(qū)域(繪圖的點(diǎn)、線等畫在這個(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))S中一個(gè)單獨(dú)的圖由繪圖區(qū)域(繪圖的點(diǎn)、線等畫在這個(gè)區(qū)域中)和這兩個(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è)面上畫多個(gè)圖時(shí)邊空自動(dòng)減半,但我們往往還需要進(jìn)一步減小邊空才能使多個(gè)圖有意義。這兩個(gè)圖形參數(shù)不是獨(dú)立的,設(shè)定一個(gè)會(huì)影響另一個(gè)。S缺省的圖形四、一頁(yè)多圖
R可以在同一頁(yè)面開(kāi)若干個(gè)按行、列排列的窗格,在每個(gè)窗格中可以作一幅圖。每個(gè)圖有自己的邊空,而所有圖的外面可以包一個(gè)“外邊空”。一頁(yè)多圖用mfrow參數(shù)或mfcol參數(shù)規(guī)定,如:四、一頁(yè)多圖R可以在同一頁(yè)面開(kāi)若干個(gè)按行、列排列的窗格,在>par(mfrow=c(3,2))
表示同一頁(yè)有三行兩列共六個(gè)圖,而且次序?yàn)榘葱刑罘?。類似地?gt;par(mfcol=c(3,2))
規(guī)定相同的窗格結(jié)構(gòu),但是次序?yàn)榘戳刑罘牛聪忍顫M第一列的三個(gè)再填第二列。要取消一頁(yè)多圖只要再運(yùn)行
>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)>par(mfrow=c(3,2))R語(yǔ)言入門-圖形課件其中text為要加的文本內(nèi)容,side表示在哪一邊寫(1為下,2為左,3為上,4為右),line表示邊空從里向外數(shù)的第幾行,最里面的一行是第0號(hào),outer=TRUE時(shí)使用外邊空,否則會(huì)使用當(dāng)前圖的邊空。例如:par(mfrow=c(2,2),oma=c(0,0,3,0),mar=c(4,4,4,4))plot(c1$Height)plot(c1$Sex)boxplot(c1$Weight~c1$Sex,main="體重對(duì)身高的回歸",xlab="身高",ylab="體重");plot(c1$Height,c1$Weight)mtext("SimulationData",outer=T,cex=1.5)其中text為要加的文本內(nèi)容,side表示在哪一邊寫(1為下R語(yǔ)言入門-圖形課件在多圖環(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è)窗格作圖。在多圖環(huán)境中還可以用mfg參數(shù)來(lái)直接跳到某一個(gè)窗格,比如圖形設(shè)備
S作圖支持各種圖形設(shè)備,其中常用的是顯示器和PostScript打印機(jī)。在一個(gè)S運(yùn)行期間可以有多個(gè)圖形設(shè)備同時(shí)存在。在R中,用>x11()打開(kāi)圖形窗口繪圖,在S-PLUS中,用
>win.graph()打開(kāi)圖形窗口繪圖。再次調(diào)用這樣的函數(shù)將打開(kāi)第二個(gè)圖形窗口。用>dev.list()可顯示以打開(kāi)的圖形設(shè)備的列表。要關(guān)閉一個(gè)圖形設(shè)備,用>dev.off()
這可以使得圖形得以完成,例如對(duì)于postscript設(shè)備關(guān)閉設(shè)備時(shí)可完成打印或存盤。用graphics.off()函數(shù)可以關(guān)閉所有打開(kāi)的圖形設(shè)備。圖形設(shè)備S作圖支持各種圖形設(shè)備,其中常用的是顯示器和PosMSWindows下的R可以把顯示窗口中的圖形復(fù)制到剪貼板或存為各種格式的圖形文件,包括WMF、PostScript、PNG、BMP、JPEG,這樣我們可以用R生成所需圖形然后存為需要的格式。MSWindows下的S-PLUS也具有類似功能。各版本的R和S-PLUS都支持生成PostScript圖形的功能,生成的圖形可以直接用于LaTeX排版。如果用MSWord排版則可把屏幕圖形存為WMF等格式。生成PostScript文件的設(shè)備可以用如下函數(shù)打開(kāi):MSWindows下的R可以把顯示窗口中的圖形復(fù)制到剪貼板>postscript(file="result1.ps",horizontal=FALSE,width=5,height=3)這時(shí)用圖形命令生成一個(gè)頁(yè)面的圖形,然后用dev.off()關(guān)閉設(shè)備,則可生成文件result1.ps。postscript()函數(shù)中horizotal參數(shù)指定是否將圖旋轉(zhuǎn)90度使得x軸平行于紙的長(zhǎng)邊,width和height規(guī)定圖的寬和高,單位是英寸。在打開(kāi)了多個(gè)圖形設(shè)備后可以用dev.set()函數(shù)來(lái)選擇當(dāng)前設(shè)備,dev.next()和dev.prev()分別返回下一個(gè)和上一個(gè)圖形設(shè)備。比如dev.set(dev.prev())選擇上一個(gè)圖形設(shè)備。>postscript(file="result1.ps"實(shí)驗(yàn)作業(yè)1、從數(shù)據(jù)文件class.txt讀入數(shù)據(jù)存為數(shù)據(jù)框,給數(shù)據(jù)框添加名字:name,age,height,weight,sex;在一頁(yè)中對(duì)體重作出qqnorm圖、直方圖、Boxplot;對(duì)身高和體重作qqplot圖,要求給出標(biāo)題、坐標(biāo)軸等。2、對(duì)上述數(shù)據(jù)class.txt作盡可能多的本節(jié)講過(guò)的圖。要求同時(shí)用到高級(jí)圖形和低級(jí)圖形函數(shù)。實(shí)驗(yàn)作業(yè)1、從數(shù)據(jù)文件class.txt讀入數(shù)據(jù)存為數(shù)據(jù)框,要求:需給出程序、結(jié)果,存成word文檔
發(fā)送到52用戶名:r
密碼:1234563、將屏幕分割為四塊,并分別畫出y=sin(x),z=3*cos(x),a=sin(x)*cos(x),b=sin(x)/x。要求:需給出程序、結(jié)果,存成word文檔3、將屏幕分割為實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)內(nèi)容學(xué)習(xí)如何應(yīng)用R軟件解決繪圖問(wèn)題1、繪圖方法2、應(yīng)用實(shí)例3、實(shí)驗(yàn)作業(yè)
第六講圖形實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)內(nèi)容學(xué)習(xí)如何應(yīng)用R軟件解決繪圖問(wèn)題1、繪圖方法常用圖形S-PLUS有很強(qiáng)的圖形功能,它可以用簡(jiǎn)單的函數(shù)調(diào)用迅速作出數(shù)據(jù)的各種圖形,當(dāng)你熟悉了S圖形的技術(shù)之后也可以指定許多圖形選項(xiàng)按自己的要求定制圖形。它的另一個(gè)特色是同一個(gè)繪圖函數(shù)對(duì)不同的數(shù)據(jù)對(duì)象可以作出不同的圖形。例如,讀入cl數(shù)據(jù)框:c1=read.table("E://c1.txt",header=TRUE,sep="")names(cl);attach(cl);plot(Height)
或>plot(cl$Height)
繪制身高的散點(diǎn)圖(縱軸為身高值,橫軸為下標(biāo))。最常用的繪圖函數(shù)為plot(),用plot()作兩個(gè)變量x與y的散點(diǎn)圖,使用如下例的方法:>plot(Height,Weight,main="體重對(duì)身高的回歸",+xlab="身高",ylab="體重")常用圖形S-PLUS有很強(qiáng)的圖形功能,它可以用簡(jiǎn)單的函數(shù)調(diào)用R語(yǔ)言入門-圖形課件R語(yǔ)言入門-圖形課件為了繪制連線圖,只要在plot()函數(shù)中加type=“l(fā)”選項(xiàng),>plot((1:50)/50,log((1:50)/50),type="l")為了繪制連線圖,只要在plot()函數(shù)中加type=“l(fā)”選可以繪制變量的莖葉圖,Usage:stem(x,scale=1,width=80,atom=1e-08)Arguments:x:anumericvector.scale:Thiscontrolstheplotlength.width:Thedesiredwidthofplot.atom:atolerance.References:
Becker,R.A.,Chambers,J.M.andWilks,A.R.(1988)_TheNewSLanguage_.Wadsworth&Brooks/Cole.Examples:stem(islands)stem(log10(islands))可以繪制變量的莖葉圖,Usage:>stem(cl$Weight,scale=1,width=80,atom=1e-08)Thedecimalpointis1digit(s)totherightofthe|4|16|78|344550810|033223312|8314|0>sort(Weight)[1]50.577.083.084.084.084.585.090.098.099.5102.5102.5[13]112.0112.0112.5112.5128.0133.0150.0>stem(cl$Weight,scale=1,wi>stem(cl$Weight,scale=2,width=80,atom=1e-08)
Thedecimalpointis1digit(s)totherightofthe|5|16|7|78|344559|0810|03311|223312|813|3>sort(Weight)[1]50.577.083.084.084.084.585.090.098.099.5102.5102.5[13]112.0112.0112.5112.5128.0133.0150.0>stem(cl$Weight,scale=2,wi繪制一個(gè)變量的盒形圖,如:>boxplot(cl$Weight)繪制一個(gè)變量的盒形圖,如:>boxplot(cl$Wei可以繪制幾個(gè)變量并排的盒形圖,>boxplot(cl$Height~cl$Sex,data=cl)可以繪制幾個(gè)變量并排的盒形圖,>boxplot(cl$Height~cl$Sex,data=cl,col="lightgray");>boxplot(cl$Height~cl$Sex,dat用hist()函數(shù)可以繪制直方圖。例如:>hist(Weight)用hist()函數(shù)可以繪制直方圖。例如:>hist(Wei用qqnorm()函數(shù)繪制正態(tài)概率圖,如:
>qqnorm(Weight)用qqnorm()函數(shù)繪制正態(tài)概率圖,如:高級(jí)圖形函數(shù)S的圖形函數(shù)分為兩類:高級(jí)圖形函數(shù)――直接繪制圖形并可自動(dòng)生成坐標(biāo)軸等附屬圖形元素;低級(jí)圖形函數(shù)――可以修改已有的圖形或者為繪圖規(guī)定一些選擇項(xiàng)。高級(jí)圖形函數(shù)總是開(kāi)始一個(gè)新圖。下面我們介紹常用的高級(jí)圖形函數(shù),以及用來(lái)修飾這些高級(jí)圖形函數(shù)的常用可選參數(shù)。高級(jí)圖形函數(shù)S的圖形函數(shù)分為兩類:最常用的是plot()函數(shù)。比如,plot(x,y)(其中x,y是向量)對(duì)兩個(gè)變量畫散點(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ù)據(jù)框,則plot(d)對(duì)d的每?jī)蓚€(gè)變量之間作圖(散點(diǎn)圖等)。最常用的是plot()函數(shù)。比如,>load("F:/R/cl.RData")>plot(cl$Sex)>load("F:/R/cl.RData")如果X是一個(gè)數(shù)值型矩陣或數(shù)據(jù)框,用pairs(X)可以繪制每?jī)闪兄g的散點(diǎn)圖矩陣。這在變量個(gè)數(shù)不太多時(shí)可以同時(shí)看到多個(gè)變量的兩兩關(guān)系,變量太多時(shí)則圖示過(guò)小而看不清。協(xié)同圖(coplot)是一種多變量的探索性分析圖形。其形式為coplot(y~x|z),其中x和y是數(shù)值型向量,z是同長(zhǎng)度的因子。對(duì)z的每一水平,繪制相應(yīng)組的x和y的散點(diǎn)圖。如:>attach(cl)>coplot(Weight~Height|Sex)如果X是一個(gè)數(shù)值型矩陣或數(shù)據(jù)框,用pairs(X)可以繪制每R語(yǔ)言入門-圖形課件如果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)繪圖。如果z是一個(gè)數(shù)值型變量,則coplot()先對(duì)z的取值分組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)圖之外還畫一條擬合曲線。qqplot(x,y)把x和y的次序統(tǒng)計(jì)量分別畫在x軸和y軸以比較兩個(gè)變量的分布。hist(x)作向量x的直方圖。缺省時(shí)自動(dòng)確定分組,也可以用nclass=參數(shù)指定分組個(gè)數(shù),或者用breaks=參數(shù)指定一個(gè)分組點(diǎn)向量。如果指定了prob=T則縱軸顯示密度估計(jì)。S也可以作三維圖或等值線圖,函數(shù)為persp()和contour()。qqnorm(x),qqline(x),qqplot(x高級(jí)圖形函數(shù)的常用選項(xiàng)高級(jí)圖形函數(shù)有一些共同的選項(xiàng),作為函數(shù)的可選參數(shù)(自變量)。例如:>plot(x)>plot(x,main="Graphofx")其中的main就是一個(gè)可選參數(shù),用來(lái)指定圖形的標(biāo)題。沒(méi)有此選項(xiàng)時(shí)圖形就沒(méi)有標(biāo)題。這樣的選項(xiàng)還有高級(jí)圖形函數(shù)的常用選項(xiàng)高級(jí)圖形函數(shù)有一些共同的選項(xiàng),作為函數(shù)add=T使函數(shù)象低級(jí)圖形函數(shù)那樣不是開(kāi)始一個(gè)新圖形而是在原圖基礎(chǔ)上添加。axes=F暫不畫坐標(biāo)軸,隨后可以用axis()函數(shù)更精確地規(guī)定坐標(biāo)軸的畫法。缺省值是axes=T,即有坐標(biāo)軸。log="x"log="y"log="xy"把x軸,y軸或兩個(gè)坐標(biāo)軸用對(duì)數(shù)刻度繪制。type=type="p"type="l"type="b"type="o"type="h"type="s"type="S"type="n"規(guī)定繪圖方式:繪點(diǎn)畫線繪點(diǎn)并在中間用線連接繪點(diǎn)并畫線穿過(guò)各點(diǎn)從點(diǎn)到橫軸畫垂線階梯函數(shù);左連續(xù)階梯函數(shù);右連續(xù)不畫任何點(diǎn)、線,但仍畫坐標(biāo)軸并建立坐標(biāo)系,適用于后面用低級(jí)圖形函數(shù)作圖。xlab="字符串“ylab="字符串"main="字符串"sub="字符串"定義x軸和y軸的標(biāo)簽,缺省時(shí)使用對(duì)象名。圖形的標(biāo)題;圖形的小標(biāo)題,用較小字體畫在x軸下方。add=T使函數(shù)象低級(jí)圖形函數(shù)那樣不是開(kāi)始一個(gè)新圖形而是在原低級(jí)圖形函數(shù)高級(jí)圖形函數(shù)可以迅速簡(jiǎn)便地繪制常見(jiàn)類型的圖形,但是,某些情況下你可能希望繪制一些有特殊要求的圖形。比如,你希望坐標(biāo)軸按照自己的設(shè)計(jì)繪制,在已有的圖上增加另一組數(shù)據(jù),在圖中加入一行文本注釋,繪出多個(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ù)羅列如下:低級(jí)圖形函數(shù)高級(jí)圖形函數(shù)可以迅速簡(jiǎn)便地繪制常見(jiàn)類型的圖形,points(x,y)lines(x,y)在當(dāng)前圖形上疊加一組點(diǎn)或線??梢允褂胮lot()的type=參數(shù)來(lái)指定繪制方法,缺省時(shí)points()畫點(diǎn),lines()畫線。text(x,y,labels,...)在由坐標(biāo)x和y給出的位置標(biāo)出由labels指定的字符串。labels可以是數(shù)值型或字符型的向量,labels[i]在x[i],y[i]處標(biāo)出。abline(a,b)abline(h=y)abline(v=x)abline(
lm.obj)在當(dāng)前圖形上畫一條直線。兩個(gè)參數(shù)a,b分布給出截距和斜率。指定h=參數(shù)時(shí)繪制水平線,指定v=參數(shù)時(shí)繪制垂直線。以一個(gè)最小二乘擬合結(jié)果lm.obj作為參數(shù)時(shí)由lm.obj的$coefficients成員給出直線的截距和斜率。polygon(x,y,...)以由向量x給出的橫坐標(biāo)和向量y給出的縱坐標(biāo)為頂點(diǎn)繪制多邊形。可以用col=參數(shù)指定一個(gè)顏色填充多邊形內(nèi)部。points(x,y)在當(dāng)前圖形上疊加一組點(diǎn)或線??梢允褂胮>plot(c1$Height[c1$Sex=='男'],c1$Weight[c1$Sex=='男'],col='Blue')>points(c1$Height[c1$Sex=='女'],c1$Weight[c1$Sex=='女'],col='Red')>plot(c1$Height[c1$Sex=='男'],legend(x,y,legend,...)
legend(,angle=v)legend(,density=v)legend(,fill=v)legend(,col=v)legend(,lty=v)legend(,pch=v)legend(,marks=v)legend函數(shù)用來(lái)在當(dāng)前圖形的指定坐標(biāo)位置繪制圖例。圖例的說(shuō)明文字由向量legend提供。至少下面的v值要給出以確定要對(duì)什么圖例進(jìn)行說(shuō)明,v是長(zhǎng)度與legend相同的向量。angle參數(shù)指定幾種陰影斜角。density參數(shù)指定幾種陰影密度。fill參數(shù)指定幾種填充顏色。col參數(shù)指定幾種顏色。lty參數(shù)指定幾種線型。pch參數(shù)指定幾種散點(diǎn)符號(hào),為字符型向量。marks參數(shù)也指定幾種散點(diǎn)符號(hào),但使用散點(diǎn)符號(hào)數(shù)值代號(hào),為數(shù)值型向量。title(main,sub)繪制由main指定的標(biāo)題和由sub指定的小標(biāo)題。axis(side,...)繪制一條坐標(biāo)軸。這之前的繪圖函數(shù)必須已經(jīng)用axes=F選項(xiàng)抑制了自動(dòng)的坐標(biāo)軸。參數(shù)side指定在哪一邊繪制坐標(biāo)軸,取值為1到4,1為下邊,然后逆時(shí)針數(shù)。可以用at=參數(shù)指定刻度位置,用labels參數(shù)指定刻度處的標(biāo)簽。legend(x,y,legend,...)le交互圖形函數(shù)S的低級(jí)圖形函數(shù)可以在已有圖形的基礎(chǔ)上添加新內(nèi)容,另外,S還提供了兩個(gè)函數(shù)locator和identify可以讓用戶通過(guò)在圖中用鼠標(biāo)點(diǎn)擊來(lái)確定位置。函數(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)類型,與plot()函數(shù)中的type參數(shù)用法相同,在鼠標(biāo)點(diǎn)擊處繪點(diǎn)(線、垂線,等等)。locator()的返回值是一個(gè)列表,有兩個(gè)變量(元素)x和y,分別保存點(diǎn)擊位置的橫坐標(biāo)和縱坐標(biāo)。交互圖形函數(shù)S的低級(jí)圖形函數(shù)可以在已有圖形的基礎(chǔ)上添加新內(nèi)例如,為了在已經(jīng)繪制的曲線圖中找一個(gè)空地方標(biāo)上一行文本,只要使用如下程序:
>text(locator(1),"Normaldensity",adj=0)text()函數(shù)的adj參數(shù)用一個(gè)數(shù)字表示文本串相對(duì)于給定的坐標(biāo)的畫法,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),如果只需要返回值而不想畫任何標(biāo)記則可以在調(diào)用此函數(shù)時(shí)加一個(gè)plot=F參數(shù)。例如,為了在已經(jīng)繪制的曲線圖中找一個(gè)空地方標(biāo)上一行文本,只要注意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]12101516注意identify()與locator()不同,locatR語(yǔ)言入門-圖形課件圖形參數(shù)的使用前面我們已經(jīng)看到了如何用main=,xlab=等參數(shù)來(lái)規(guī)定高級(jí)圖形函數(shù)的一些設(shè)置。在實(shí)際繪圖,特別是繪制用于演示或出版的圖形時(shí),S用缺省設(shè)置繪制的圖形往往不能滿足我們的要求。但是,S提供了一系列所謂圖形參數(shù),通過(guò)使用圖形參數(shù)可以修改圖形顯示的所有各方面的設(shè)置。圖形參數(shù)包括關(guān)于線型、顏色、圖形排列、文本對(duì)齊方式等各種設(shè)置。每個(gè)圖形參數(shù)有一個(gè)名字,比如col代表顏色,取一個(gè)值,比如col="red"是紅色。每個(gè)圖形設(shè)備有一套單獨(dú)的圖形參數(shù)。設(shè)置圖形參數(shù)分為兩種:永久設(shè)置與臨時(shí)設(shè)置。永久設(shè)置使用par()函數(shù)進(jìn)行設(shè)置,設(shè)置后在退出前一直保持有效;臨時(shí)設(shè)置則是在圖形函數(shù)中加入圖形參數(shù),如上面的例子:>text(locator(1),"Normaldensity",adj=0)中的adj參數(shù)。圖形參數(shù)的使用前面我們已經(jīng)看到了如何用main=,xlabpar()函數(shù)用來(lái)訪問(wèn)或修改當(dāng)前圖形設(shè)備的圖形參數(shù)。如果不帶參數(shù)調(diào)用,如:>par()結(jié)果為一個(gè)列表,列表的各元素名為圖形參數(shù)的名字,元素值為相應(yīng)圖形參數(shù)的取值。如果調(diào)用時(shí)指定一個(gè)圖形參數(shù)名的向量作為參數(shù),則只返回被指定的圖形參數(shù)的列表:>par(c("col","lty"))>par('col.axis')[1]"black"調(diào)用時(shí)指定名字為圖形參數(shù)名的有名參數(shù),則修改指定的圖形參數(shù),并返回原值的列表:>oldpar=par(col=4,lty=2)>oldparpar()函數(shù)用來(lái)訪問(wèn)或修改當(dāng)前圖形設(shè)備的圖形參數(shù)。如果不帶因?yàn)橛胮ar()修改圖形參數(shù)是保持到退出以前都有效的,而且即使是在函數(shù)內(nèi)此修改仍是全局的,所以我們可以利用如下的慣用法,在完成任務(wù)后恢復(fù)原來(lái)的圖形參數(shù):>oldpar=par(col=4,lty=2)…(需要修改圖形參數(shù)的繪圖任務(wù))
>par(oldpar)#恢復(fù)原始的圖形參數(shù)
除了象上面那樣用par()函數(shù)永久修改圖形參數(shù),我們還可以在幾乎任何圖形函數(shù)中指定圖形參數(shù)作為有名參數(shù),這樣的修改是臨時(shí)的,只對(duì)此函數(shù)起作用。例如:>plot(x,y,pch="+")
就用圖形參數(shù)pch指定了繪散點(diǎn)的符號(hào)為加號(hào)。這個(gè)設(shè)定只對(duì)這一張圖有效,對(duì)以后的圖形沒(méi)有影響。因?yàn)橛胮ar()修改圖形參數(shù)是保持到退出以前都有效的,而且即圖形參數(shù)詳解鑒于繪制有特殊需要的圖形是S的一個(gè)強(qiáng)項(xiàng),而使用圖形參數(shù)是完成此類任務(wù)的重要手段,我們?cè)谶@里較詳細(xì)地介紹S的各種圖形參數(shù)。這些圖形參數(shù)可以大體上分為以下的幾個(gè)大類,我們將分別介紹:圖形元素控制坐標(biāo)軸與坐標(biāo)刻度圖形邊空一頁(yè)多圖圖形參數(shù)詳解鑒于繪制有特殊需要的圖形是S的一個(gè)強(qiáng)項(xiàng),而使用一、圖形元素圖形由點(diǎn)、線、文本、多邊形等元素構(gòu)成。下列的圖形參數(shù)用來(lái)控制圖形元素的繪制細(xì)節(jié):pch="+"
pch=4指定用于繪制散點(diǎn)的符號(hào)。繪制的點(diǎn)往往略高于或低于指定的坐標(biāo)位置,僅pch=“.”無(wú)這個(gè)問(wèn)題。如果pch的值為從0到18之間的一個(gè)數(shù)字,將使用特殊的繪點(diǎn)符號(hào)。下例可以顯示所有特殊繪點(diǎn)符號(hào):>plot(c(0,100),c(0,100),type="n",axes=F,xlab='',ylab='')>legend(10,90,as.character(0:9),pch=0:9)>legend(50,90,as.character(10:18),pch=10:18)一、圖形元素圖形由點(diǎn)、線、文本、多邊形等元素構(gòu)成。下列的圖形>plot(c(0,100),c(0,100),type="n",axes=F,xlab='',ylab='')>legend(10,90,as.character(0:9),pch=0:9)>legend(50,90,as.character(10:18),pch=10:18)
>plot(c(0,100),c(0,100),tlty=2指定畫線用的線型。缺省值lty=1是實(shí)線。從2開(kāi)始是各種虛線。lwd=2指定線粗細(xì),以標(biāo)準(zhǔn)線粗細(xì)為單位。這個(gè)參數(shù)影響數(shù)據(jù)曲線的線寬以及坐標(biāo)軸的線寬。下例繪制正弦曲線圖:>oldpar=par(lwd=2,col=‘blue’,lty=2)>x=(0:100)/100*2*pi>plot(x,sin(x),type="l",axes=F)>abline(h=0)>abline(v=0)>par(oldpar)col=2指定顏色,可應(yīng)用于繪點(diǎn)、線、文本、填充區(qū)域、圖象。顏色值也可以用象"red","blue"這樣的顏色名指定。lty=2指定畫線用的線型。缺省值lty=1是實(shí)線。從2開(kāi)始R語(yǔ)言入門-圖形課件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ù)。font=2用來(lái)指定字體的整數(shù)。一般font=1是正體,2是二、坐標(biāo)軸與坐標(biāo)刻度許多高級(jí)圖形帶有坐標(biāo)軸,還可以先不畫坐標(biāo)軸然后用axis()單獨(dú)加。函數(shù)box()用來(lái)畫坐標(biāo)區(qū)域四周的框線。坐標(biāo)軸包括三個(gè)部件:軸線(用lty可以控制線型),刻度線,刻度標(biāo)簽。它們可以用如下的圖形參數(shù)來(lái)控制:lab=c(5,7,12)第一個(gè)數(shù)為x軸希望畫幾個(gè)刻度線,第二個(gè)數(shù)為y軸希望畫幾個(gè)刻度線,這兩個(gè)數(shù)是建議性的;第三個(gè)數(shù)是坐標(biāo)刻度標(biāo)簽的寬度為多少個(gè)字符,包括小數(shù)點(diǎn),這個(gè)數(shù)太小會(huì)使刻度標(biāo)簽四舍五入成一樣的值。二、坐標(biāo)軸與坐標(biāo)刻度許多高級(jí)圖形帶有坐標(biāo)軸,還可以先不畫坐標(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í)際畫的坐標(biāo)軸的距離,通常是0。tck=0.01坐標(biāo)軸刻度線長(zhǎng)度,單位是繪圖區(qū)域大小,值為占繪圖區(qū)域的比例。tck小于0.5時(shí)x軸和y
軸的刻度線將統(tǒng)一到相同的長(zhǎng)度。取1時(shí)即畫格子線。取負(fù)值時(shí)刻度線畫在繪圖區(qū)域的外面。las=1坐標(biāo)刻度標(biāo)簽的方向。0表示總是平行于坐標(biāo)mgp=cxaxs="s"yaxs="d"控制x軸和y軸的畫軸方法。取值為"s"(即standard)或"e"(即extended)的時(shí)候數(shù)據(jù)范圍控制在最小刻度和最大刻度之間。取"e"時(shí)如果有數(shù)據(jù)點(diǎn)十分靠近邊緣軸的范圍會(huì)略微擴(kuò)大。這種畫軸方式有時(shí)會(huì)在軸的一邊留下太大的空白。取值為“i”(即internal)或“r”(此為缺省)使得刻度線都落在數(shù)據(jù)范圍內(nèi)部,而“r”方式所留的邊空較小。取值設(shè)為"d"時(shí)會(huì)鎖定此坐標(biāo)軸,后續(xù)的圖形都使用與它完全相同的坐標(biāo)軸,這在要生成一系列可比較的圖形的時(shí)候是有用的。要解除鎖定需要把這個(gè)圖形參數(shù)設(shè)為其它值。xaxs="s"控制x軸和y軸的畫軸方法。三、圖形邊空
三、圖形邊空S中一個(gè)單獨(dú)的圖由繪圖區(qū)域(繪圖的點(diǎn)、線等畫在這個(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))S中一個(gè)單獨(dú)的圖由繪圖區(qū)域(繪圖的點(diǎn)、線等畫在這個(gè)區(qū)域中)和這兩個(gè)圖形參數(shù)不是獨(dú)立的,設(shè)定一個(gè)會(huì)影響另一個(gè)。S缺省的圖形邊空常常太大,以至于有時(shí)圖形窗口較小時(shí)邊空占了整個(gè)圖形的很大一部分。通常我們可以取消右邊空,并且在不用標(biāo)題時(shí)可以大大縮小上邊空。例如下例可以生成十分緊湊的圖形:
>oldpar<-par(mar=c(2,2,1,0
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中藥郵寄服務(wù)合同范例
- 買賣房合同范例協(xié)議
- 天津?yàn)I海汽車工程職業(yè)學(xué)院《材料科學(xué)基礎(chǔ)D》2023-2024學(xué)年第一學(xué)期期末試卷
- 水泵機(jī)械加工合同范例
- 專利咨詢費(fèi)合同范例
- 居里夫人和三克鐳-教案教學(xué)設(shè)計(jì)
- 共同制作招牌合同范例
- 汽貿(mào)銷售合同范例
- 物流倉(cāng)儲(chǔ)員工合同范例
- 加工承攬維修合同范例
- T-JSTJXH 15-2022 裝配式勁性柱-鋼梁框架結(jié)構(gòu)設(shè)計(jì)規(guī)程
- 市政工程人行道維修方案
- 2021離婚協(xié)議書電子版免費(fèi)
- 《班主任工作常規(guī)》課件
- 初中英語(yǔ)期末考試方法與技巧課件
- 四年級(jí)上冊(cè)綜合實(shí)踐試題-第一學(xué)期實(shí)踐考查卷 粵教版 含答案
- 油煙管道清洗服務(wù)承諾書
- 卷積神經(jīng)網(wǎng)絡(luò)講義課件
- 山東師范大學(xué)《英語(yǔ)語(yǔ)言學(xué)》期末復(fù)習(xí)題
- 考研快題系列一(城市濱水廣場(chǎng)綠地設(shè)計(jì))
- HTML5CSS3 教案及教學(xué)設(shè)計(jì)合并
評(píng)論
0/150
提交評(píng)論