一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - R語言 - R語言基本畫圖函數與多圖多線的用法

R語言基本畫圖函數與多圖多線的用法

2021-12-28 17:15chenlongzhen_tech R語言

這篇文章主要介紹了R語言基本畫圖函數與多圖多線的用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

常用統計作圖函數匯總

plot()

hist() 直方圖

stem() 莖葉圖

boxplot() 箱線圖(盒形圖)

coplot() 協同圖

qqnorm() 正態qq圖

qqplot() 兩總體qq圖

 

1. 高級低級圖形函數的常用選項

高、低級圖形函數概述

高級圖形函數可以迅速簡便地繪制常見類型的圖形,但是,某些情況下你可能希望繪制一些有特殊要求的圖形。比如,你希望坐標軸按照自己的設計繪制,在已有的圖上增加另一組數據,在圖中加入一行文本注釋,繪出多個曲線代表的數據的標簽,等等。

低級圖形函數讓你在已有的圖的基礎上進行添加。

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

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

- plot(x,y)(其中x,y是向量)對兩個變量畫散點圖。

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

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

- 如果x是一個普通向量,則繪制x的值對其下標的散點圖。

- 如果x是復數向量則繪制虛部對實部的散點圖。

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

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

- 如果d是一個數值型數據框,則plot(d)對d的每兩個變量之間作圖(散點圖等)

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

R語言基本畫圖函數與多圖多線的用法

高級繪圖函數常用選項

R語言基本畫圖函數與多圖多線的用法

低級繪圖函數常用選項

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

R語言基本畫圖函數與多圖多線的用法

R語言基本畫圖函數與多圖多線的用法

圖形參數詳解

圖形元素

類型 解釋
pch 指定用于繪制散點的符號。繪制的點往往略高于或低于指定的坐標位置,僅pch=“.”無這個問題。R語言基本畫圖函數與多圖多線的用法
lty=2 指定畫線用的線型。缺省值lty=1是實線。從2開始是各種虛線。
lwd=2 指定線粗細,以標準線粗細為單位。這個參數影響數據曲線的線寬以及坐標軸的線寬。
col=2 指定顏色,可應用于繪點、線、文本、填充區域、圖象。顏色值也可以用象”red”,”blue” 這樣的顏色名指定。
font=2 用來指定字體的整數。一般font=1是正體,2是 黑體,3是 斜體,4是 黑斜體。
font.axisfont.labfont.mainfont.sub 分別用來指定坐標刻度、坐標軸標簽、標題、小標題所用的字體。
adj=-0.1 指定文本相對于給定坐標的對齊方式。取0表示左對齊,取1表示右對齊,取0.5表示居中。此參數的值實際代表的是出現在給定坐標左邊的文本的比例,所以adj=-0.1的效果是文本出現在給定坐標位置的右邊并空出相當于文本10%長度的距離。
cex=1.5 指定字符放大倍數。

坐標軸與坐標刻度

許多高級圖形帶有坐標軸,還可以先不畫坐標軸然后用axis()單獨加。

函數box() 用來畫坐標區域四周的框線。

坐標軸包括三個部件:軸線(用lty可以控制線型),刻度線,刻度標簽。它們可以用如下的圖形參數來控制:

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

一頁多圖

一頁多圖用mfrow參數或mfcol參數規定,如:

par(mfrow=c(3,2)) 表示同一頁有三行兩列共六個圖,而且次序為按行填放。

類似地,par(mfcol=c(3,2))規定相同的窗格結構,但是次序為按列填放,即先填滿第一列的三個再填第二列。

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

如:par(oma=c(2,0,3,0))函數mtext用來在外邊空加文字標注。

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

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

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

圖形邊空

R語言基本畫圖函數與多圖多線的用法

S中一個單獨的圖由繪圖區域(繪圖的點、線等畫在這個區域中)和包圍繪圖區域的邊空組成,邊空中可以包含坐標軸標簽、坐標軸刻度標簽、標題、小標題等,繪圖區域一般被坐標軸包圍。

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

例如:

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

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

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

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

在一個頁面上畫多個圖時邊空自動減半,但我們往往還需要進一步減小邊空才能使多個圖有意義。

交互圖形函數

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

例如,為了在已經繪制的曲線圖中找一個空地方標上一行文本,只要使用如下程序:

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

text()函數的adj參數用一個數字表示文本串相對于給定的坐標的畫法,adj=0表示給定坐標為文本串左側的坐標,adj=1表示給定坐標為文本串右側的坐標,adj=0.5表示給定坐標為文本串中間的坐標。

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

注意identify()與locator()不同,locator()返回圖中任意點擊位置的坐標,而identify() 只返回離點擊位置最近的點的序號。例如,我們在向量x和y中有若干個點的坐標,運行如下程序:

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

這時顯示轉移到圖形窗口,進入等待狀態,用戶可以點擊圖中特別的點,該點的序號就會在旁邊標出。為了結束,只要單擊鼠標中鍵或單擊右鍵并選擇停止。返回結果為你點擊的各個點的序號:

警告: 已經找到了最近的點

警告: 沒有0.25英尺的點

[1] 1 2 10 15 16

R語言基本畫圖函數與多圖多線的用法

2. hist直方圖

hist(x)作向量x的直方圖。缺省時自動確定分組,也可以用nclass=參數指定分組個數,或者用breaks=參數指定一個分組點向量。如果指定了prob=T則縱軸顯示密度估計。

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箱線圖

箱線圖的圖形中的參數意義如下:

R語言基本畫圖函數與多圖多線的用法

例子: 作了兩個圖疊加,一個為subset= supp == “VC“,另一個為subset= supp == ”OJ“.數據ToothGrowth有兩個數量變量(len,dose)和一個屬性變量(supp); 對每個supp,dose各有三個值(各形成三個盒形圖). 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"))

R語言基本畫圖函數與多圖多線的用法

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

R語言基本畫圖函數與多圖多線的用法

5. coplot() 協同圖

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

R語言基本畫圖函數與多圖多線的用法

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

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

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

tsplot(x)繪制時間序列曲線圖。多個參數時tsplot(x1, x2, ...)表示繪制多條曲線,自動統一曲線取值范圍。如果參數非時間序列對象則以下標1,2,3等為橫坐標繪圖。

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

R語言基本畫圖函數與多圖多線的用法

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

- qqnorm(x)對向量x作正態概率(縱軸為次序統計量值,橫軸為對應該次序統計量的標準正態分布分位數值)。

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

qqplot(x,y)把x和y的次序統計量分別畫在x軸和y 軸以比較兩個變量的分布。

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

R語言基本畫圖函數與多圖多線的用法

 

多圖多線

1 多圖

par(mfrow=c(2,2))#準備畫2?2的4個圖
plot(compression, distance,main= "Hooke's Law") #只有標題的圖
plot(compression, distance,main= "Hooke's Law", xlab= "x",ylab= "y") #標題+x,y標記
identify(compression,distance) #標出點號碼
plot(compression, distance,main="Hooke's Law") #只有標題的圖
text(46,120, "f=1/2*k*s")#在指定位寫入文字
plot(compression, distance,main="Hooke's Law") #只有標題的圖
text(locator(2), "I am here!") #在點擊的兩個位置寫入文字

R語言基本畫圖函數與多圖多線的用法

2 標簽

#畫圖 (對數變換后)
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

#畫圖 (對數變換后)
plot(log(body),log(brain))
identify(log(body),log(brain),row.names(Animals))

R語言基本畫圖函數與多圖多線的用法

3 顏色畫圖函數

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()

R語言基本畫圖函數與多圖多線的用法

4 多線

高級低級函數畫圖

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)
# 注意圖例書寫方式
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')

R語言基本畫圖函數與多圖多線的用法

matplot畫圖

matplot :用矩陣的列畫多線圖

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)")

R語言基本畫圖函數與多圖多線的用法

R語言基本畫圖函數與多圖多線的用法

R語言基本畫圖函數與多圖多線的用法

5 時間序列圖

x=runif(100)
x=ts(x,start=1960+(3/12),frequency=12)#構造時間序列frequency=12即按個月份構造
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")

R語言基本畫圖函數與多圖多線的用法

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。如有錯誤或未考慮完全的地方,望不吝賜教。

原文鏈接:https://blog.csdn.net/sadfasdgaaaasdfa/article/details/44921639

延伸 · 閱讀

精彩推薦
  • R語言R語言gsub替換字符工具的具體使用

    R語言gsub替換字符工具的具體使用

    這篇文章主要介紹了R語言gsub替換字符工具的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友...

    lztttao10372021-12-24
  • R語言R語言讀取xls與xlsx格式文件過程

    R語言讀取xls與xlsx格式文件過程

    這篇文章主要為大家介紹了使用R語言讀取xls與xlsx格式文件的過程步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪...

    Kanny廣小隸11982022-01-20
  • R語言R語言中qplot()函數的用法說明

    R語言中qplot()函數的用法說明

    這篇文章主要介紹了R語言中qplot()函數的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    Jack_丁明12752022-01-05
  • R語言R語言中的vector(向量),array(數組)使用總結

    R語言中的vector(向量),array(數組)使用總結

    這篇文章主要介紹了R語言中的vector(向量),array(數組)使用總結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要...

    A葉子葉來5772021-11-14
  • R語言R語言常量知識點總結

    R語言常量知識點總結

    在本篇文章里小編給大家整理了一篇關于R語言常量知識點總結內容,有興趣的朋友們可以學習分享下。...

    R語言教程網12102021-12-29
  • R語言R語言實現支持向量機SVM應用案例

    R語言實現支持向量機SVM應用案例

    本文主要介紹了R語言實現支持向量機SVM應用案例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    一天_pika5222022-01-18
  • R語言基于R/RStudio中安裝包“無法與服務器建立連接”的解決方案

    基于R/RStudio中安裝包“無法與服務器建立連接”的解決方案

    這篇文章主要介紹了基于R/RStudio中安裝包“無法與服務器建立連接”的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    truffle52815052022-01-05
  • R語言如何用R語言繪制散點圖

    如何用R語言繪制散點圖

    這篇文章主要介紹了如何用R語言繪制散點圖,幫助大家更好的理解和學習使用R語言,感興趣的朋友可以了解下...

    菜鳥教程13002021-12-23
主站蜘蛛池模板: 欧美三级小视频 | 亚洲精品国产综合久久一线 | 日韩中文字幕网站 | 久久视频精品3线视频在线观看 | 精品日韩欧美一区二区三区 | 91影视永久福利免费观看 | 国产精品 视频一区 二区三区 | 韩剧在线免费观看 | 免费看国产精品久久久久 | 国产欧美日韩精品一区二区三区 | 美女国内精品自产拍在线播放 | 国产美女在线一区二区三区 | 欧美理论片手机在线观看片免费 | 香蕉久久网 | 国产成人综合一区精品 | 欧美精品久久久久久久影视 | 牛人国产偷窥女洗浴在线观看 | 国产精品永久免费自在线观看 | 国产日韩一区二区 | 国产精品亚洲w码日韩中文 国产精品香蕉在线观看不卡 | 色在线亚洲视频www 色欲麻豆国产福利精品 | 国产精品一在线观看 | 亚洲色图第四色 | 欧美灰丝袜丝交nylons | 成人综合网站 | 我的家教老师 | 国产中文字幕 | 91私密保健女子养生spa | 我被男人下药添得好爽 | 俄罗斯12一15处交 | 亚洲AV无码国产精品色午夜情 | 95视频在线观看在线分类h片 | 青青草精品在线 | 欧美日韩高清完整版在线观看免费 | 污污免费| 久久青草费线频观看国产 | 91tv在线观看| 日本欧美大码a在线视频播放 | 国人精品视频在线观看 | 国产yw193.㎝m在线观看 | 色综合久久天天综合 |