溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

R語言中par()函數(shù)的作用是什么

發(fā)布時間:2021-07-14 14:08:29 來源:億速云 閱讀:1085 作者:Leah 欄目:云計算

這篇文章將為大家詳細講解有關R語言中par()函數(shù)的作用是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

R中設置圖形參數(shù)--函數(shù)par()詳解

    R有著非常強大的繪圖功能,我們可以利用簡單的幾行代碼繪制出各種圖形來,但是有時候默認的圖形設置沒法滿足我們的需要,甚至會碰到各種各樣的小問題:如坐標軸或者標題出界了,或者圖例說明的大小或者位置遮擋住了圖形,甚至有時候默認的顏色也不能滿足我們的需求。如何進行調(diào)整呢?這就用到了“強大”的函數(shù)par()。我們可以通過設定函數(shù)par()的各個參數(shù)來調(diào)整我們的圖形,這篇博文就是對函數(shù)par()的各個參數(shù)進行一下總結(jié)。

    函數(shù)par()的使用格式如下:

      par(..., no.readonly = FALSE)

    其中...表示所有類似于tag=value形式的參數(shù)。下面會具體的對這些參數(shù)進行描述。當參數(shù)no.readonly=TRUE時,函數(shù)par()就只允許有這一個參數(shù)了,并且會返回當前繪圖設備中各個參數(shù)的參數(shù)值。

    每一個圖形設備都有自己的繪圖參數(shù),如果當前還沒有打開繪圖設備,那么函數(shù)par()在進行參數(shù)設置之前會自動的打開一個新繪圖設備。

   如前面所說,直接在R編輯器中輸入命令par()或者par(no.readonly=TRUE)都可以獲取當前的各個繪圖參數(shù)。

    函數(shù)par()中的參數(shù)可以分為三大類:

只能讀取,不能進行設置。包括參數(shù)cin,cra,csi,cxy, din。

只能通過函數(shù)par()進行設置。包括參數(shù):

"ask",

"fig", "fin",

"lheight",

"mai", "mar", "mex", "mfcol", "mfrow", "mfg",

"new",

"oma", "omd", "omi",

"pin", "plt", "ps", "pty",

"usr",

"xlog", "ylog"

剩下的參數(shù)除了函數(shù)par()外,還可以通過各種高級繪圖函數(shù)進行設置,如函數(shù)plot,points,lines,abline,title,text,axis,image,box,contour,rect,arrows等。

    當一個參數(shù)的值被設定時,默認的會返回設定之前這個參數(shù)的值,我們可以通常一些變量把這些值保存下來。執(zhí)行完操作之后,可以利用這些歷史值進行恢復設定(但是不建議這么做,因為可能會引起一些參數(shù)值沖突)。如:

> x<-par(bg="red")

> x

$bg

[1] "transparent"

> plot(1:10)

> par(x)

> plot(1:100)

    接下來就對各個參數(shù)的含義進行一下大概的說明,中間會用一些簡單的代碼作為示例。

adj。該參數(shù)值用于設定在text、mtext、title中字符串的對齊方向。0表示左對齊,0.5(默認值)表示居中,而1表示右對齊(說明一下,區(qū)間[0,1]內(nèi)的任何值都可以作為參數(shù)adj的有效值,并且在大部分的圖形設備中,介于區(qū)間外的值也是有效的)。注意一下,函數(shù)text中的參數(shù)adj的值可以以類似于形式adj=c(x,y)調(diào)整方向。但是在text中該參數(shù)的值影響的是對點的標記,對函數(shù)mtext和title來說,參數(shù)adj的值影響的是整個圖像或設備區(qū)域。

> par(mfrow=c(1,2))

> plot(1:4)

> title("plot(1:4)",adj=0)

> plot(1:4)

> title("plot(1:4)",adj=1)

ann。如果ann=FALSE,那么高水平繪圖函數(shù)會調(diào)用函數(shù)plot.default使對坐標軸名稱、整體圖像名稱不做任何注解。默認值為TRUE。

> plot(1:4,ann=FALSE,main='plot(1:4,ann=FALSE)')#盡管指定了參數(shù)main的值,但是圖像中仍然沒有顯示

> plot(1:4,ann=TRUE,main='plot(1:4,ann=FALSE)')

ask,邏輯值。若為TRUE(且當前的R會話是可交互狀態(tài)),則在繪制新圖像之前會要求用戶輸入確認信息。同樣的,會對擴展包grid和lattice的輸出有影響,甚至可能會應用到?jīng)]有屏幕輸出的設備上(但可能會沒有效果)。

bg。用于設定繪圖區(qū)域的背景顏色。當通過函數(shù)par()調(diào)用時,會同時設定參數(shù)new=FALSE。對很多設備來說,該參數(shù)的初始值就是該設備的背景顏色值,其他情況下一般為"white"。需要注意一點的是,一些圖形函數(shù)例如plot.default和points等也有名為bg的參數(shù),但是代表的含義是不同的。

bty。該參數(shù)值為字符串型,用于限定圖形的邊框類型。如果bty的值為"o"(默認值)、"l"、"7"、"c"、"u"或者"]"中的任意一個,對應的邊框類型就和該字母的形狀相似。如果bty的值為"n",表示無邊框。

cex。用于表示對默認的繪圖文本和符號放大多少倍。需要注意一些繪圖函數(shù)如plot.default等也有一個相同名字的參數(shù),但是此時表示在函數(shù)par()的參數(shù)cex的基礎上再放大多少倍,此外還有函數(shù)points等接受一個數(shù)值向量為參數(shù)。

cex.axis。表示在當前的cex設定情況下,對坐標軸刻度值字體的放大倍數(shù)。

cex.lab。表示在當前的cex設定情況下,對坐標軸名稱字體的放大倍數(shù)。

cex.main。表示在當前的cex設定情況下,對主標題字體的放大倍數(shù)。

cex.sub。表示在當前的cex設定情況下,對子標題字體的放大倍數(shù)。

cin。這是一個只讀參數(shù),不能進行修改。以形式(width,height)返回字體大小,單位為英寸。這和參數(shù)cra的作用一樣,只是測量單位不同。

col。用于設定默認的繪圖顏色(無可否認這是一個非常特別的參數(shù),以后會總結(jié)博文專門討論如何設定顏色R中設置圖形參數(shù)--函數(shù)par()詳解)。

col.axis。坐標軸刻度值的顏色,默認為"black"。如代碼:

> par(cex.axis=3,col.axis="red")

> plot(1:4)

col.lab。坐標軸名稱的顏色,默認為"black"。

col.main。主標題的顏色,默認為"black"。

col.sub。子標題的顏色,默認為"black"。

cra。參見參數(shù)cin的說明。

crt。該參數(shù)的值為一個表示度數(shù)的數(shù)值,用于表示單個字符的旋轉(zhuǎn)度數(shù),最好為90的倍數(shù)。和參數(shù)srt的不同之處在于后者是對整個字符串進行旋轉(zhuǎn)。

csi。只讀參數(shù),返回默認的字符高度,以英寸為單位。

cxy。只讀參數(shù),以形式(width,height)返回默認的字符寬度、高度,其中par("cxy")=par("cin")/par("pin")。

din。只讀參數(shù),表示繪圖設備的尺寸規(guī)格,以形式(width,height)返回,單位為英寸。

family。圖形中字符的字體類型。最大的長度為200 bytes。默認值為"",表示采用繪圖設備的默認字體。

fg。圖形中顯著位置的顏色(如坐標軸、刻度線,邊框等),一般默認為"black"。

fig。一個數(shù)值向量,形式為c(x1, x2, y1, y2),用于設定當前圖形在繪圖設備中所占區(qū)域,注意需要滿足x1<x2,y1<y2。如果修改參數(shù)fig,會自動打開一個新的繪圖設備,而若希望在原來的繪圖設備中添加新的圖形,需要和參數(shù)new=TRUE一起使用。如代碼:

> par(fig=c(0,0.5,0,0.5))

> plot(1:3)

> par(fig=c(0.5,1,0.5,1))

> plot(1:3)

> par(fig=c(0,0.5,0,0.5),new=TRUE)

> plot(1:3)

fin。當前繪圖區(qū)域的尺寸規(guī)格,形式為(width,height),單位為英寸。如果修改了這個參數(shù)的值,默認為啟動一個新的繪圖設備。

font。用于設定采用哪種字型,為一個整數(shù)。1代表純文本(默認值),2表示黑體,3表示斜體,4表示黑色斜體。在Adobe字符編碼下,5也可以。

font.axis。坐標軸刻度值的字型。

font.lab。坐標軸名稱的字型。

font.main。主標題的字型。

font.sub。子標題的字型。

lab。以形式c(x,y,len)表示的數(shù)值型向量,用于對坐標軸的名稱進行設定。值x和y用于設定x和y軸上的刻度線的個數(shù),而len設定了刻度線的長度(目前R中這個值是沒有效應的)。

las。只能是0,1,2,3中的某一個值,用于表示刻度值的方向。0表示總是平行于坐標軸;1表示總是水平方向;2表示總是垂直于坐標軸;3表示總是垂直方向。

lend。線段的端點樣式,參數(shù)值可以為一個整數(shù)或者一個字符串。參數(shù)值為0或者"round"時,表示端點樣式為圓角(默認值);為1或者"butt"時,表示端點直接截斷;為2或者"square"表示延伸末端。如代碼:

> plot(1:8,type="n",ylim=c(1,6))

> x0<-c(1,2,3,5,6)

> y0<-rep(1,5)

> x1<-x0

> y1<-rep(6,5)

> segments(x0,y0,x1,y1)

> x0<-rep(0,4)

> y0<-seq(1.3,4.3,1)

> x1<-c(1,6,3,1)

> y1<-y0

#默認情形

> segments(x0,y0,x1,y0,lwd=10,col="red")

#修改參數(shù)lend=1

> y0<-seq(1.6,4.6,1)

> y1<-y0

> segments(x0,y0,x1,y0,lwd=10,col="green",lend=1)

#修改參數(shù)lend=2

> y0<-seq(1.9,4.9,1)

> y1<-y0

> x0<-x1

> x1<-c(2,8,5,3)

> segments(x0,y0,x1,y0,lwd=10,col="blue",lend=2)

lty。直線類型。參數(shù)的值可以為整數(shù)(0為空,1為實線(默認值),2為虛線,3為點線,還可以為4、5、6等),也可以為字符串(和整數(shù)是一一對應的,如"blank"、"solid"、"dashed"、"dotted"、"dotdash"、"longdash"或者 "twodash")。

lwd。線條寬度。必須為一個整數(shù),默認值為1。具體的實現(xiàn)根據(jù)設備而定,有一些繪圖設備不支持線條寬度小于1。

mfcol,mrow。用于設定圖像設備的布局(簡單的說就是將當前的繪圖設備分隔成了nr*nc個子設備),參數(shù)形式為c(nr, nc)。子圖的繪圖順序是按列還是按行就分別根據(jù)是參數(shù)指定的是mfcol還是mfrow。想要實現(xiàn)相同的功能還可以利用函數(shù)layout或者split.screen。

mgp。設定標題、坐標軸名稱、坐標軸距圖形邊框的距離。默認值為c(3,1,0),其中第一個值影響的是標題。

new。邏輯值,默認值為FALSE。如果設定為TRUE,那么下一個高級繪圖命令并不會清空當前繪圖設備。

oma。參數(shù)形式為c(bottom, left, top, right) ,用于設定外邊界。

omi。和參數(shù)oma的作用一樣,只是這次參數(shù)的單位為英寸。

pch。表示點的形狀,它的值可以為數(shù)值型(介于0到25之間的數(shù)值),也可以為字符型。1代表圓圈,2代表三角形,3代表“+”號。當pch的值為字符型時,那么點就通過該字符來表示。

pin。當前的維度,形式為c(width,height),單位為英寸。

plt。形式為 c(x1, x2, y1, y2),設定當前的繪圖區(qū)域。

pty。一個字符型參數(shù),表示當前繪圖區(qū)域的形狀,"s"表示生成一個正方形區(qū)域,而"m"表示生成最大的繪圖區(qū)域。

srt。字符串旋轉(zhuǎn)度數(shù),只支持函數(shù)text。

tck??潭染€的長度,為一個小于等于的小數(shù),表示繪圖區(qū)域的高度或?qū)挾鹊囊徊糠郑ㄈ「叨然驅(qū)挾戎休^小的值)。如果tck=1,則表示繪制網(wǎng)格線。默認值為NA(相當于tcl=-0.5)。

tcl。同樣可用于設定刻度線的長度,但是和tck的單位不同。它的默認值為-0.5。

usr。一個形式為c(x1, x2, y1, y2)的向量,表示當前繪圖區(qū)域的坐標值范圍:c(xleft, xright, ybottom, ytop)。如果采用的對數(shù)刻度(如par("xlog")=TRUE),那么x坐標軸的表示范圍為10^par("usr")[1:2],同樣也可以得到y(tǒng)坐標軸的表示范圍。

xaxp。一個形式為c(x1, x2, n)的向量,表示當par("xlog")=false時,x坐標軸的刻度線的區(qū)間及區(qū)間中的刻度線個數(shù)。若par("xlog")=TRUE,情形就稍微復雜了:若取值范圍較小,那么n是一個負數(shù),且刻度線的分布和正常情形(沒有對數(shù)轉(zhuǎn)換)下相似;若n取值為1、2、3中的一個,c(x1,x2)=10^par("usr")[1:2](并且此時par("usr")是指par("xlog")=TRUE情況下返回的值)。具體解釋如下:

n=1,在坐標值為10^j(j為整數(shù))處繪制刻度線。

n=2,在坐標值為k*(10^j)處繪制刻度線,其中k為1或者5。

n=3,在坐標值為k*(10^j)處繪制刻度線,其中k為1、2或者5。

yaxp。同xaxp類似,表示y坐標軸的刻度線的區(qū)間及區(qū)間中的刻度線個數(shù)。

xaxs。坐標軸x的間隔設定方式。取值范圍為:"r", "i", "e", "s", "d"。一般來說,計算方式是由xlim的數(shù)值范圍確定的(如果xlim指定了的話)。"r"(regular)首先會對數(shù)值范圍向兩端各延伸4%,然后在延伸后的數(shù)值區(qū)間中設置坐標值;"i"(internal)直接在原始的數(shù)據(jù)范圍中設置坐標值;"s"(standard)和"e"(extended)、;"d"(direct)目前還不支持。

yaxs。類似于xaxs,對坐標軸y的間隔設定方式。

xaxt。用于設定x坐標軸的刻度值類型,為一個字符。"n"表示不繪制刻度值及刻度線;"s"表示繪制,默認值。

yaxt。類似于xaxt。

xlog。一個邏輯值。如果為TRUE,表示對x軸為對數(shù)坐標軸,默認值為FALSE。

ylog。類似于xlog。

關于R語言中par()函數(shù)的作用是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI