成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

R語言學(xué)習(xí)筆記(3):繪圖

大數(shù)據(jù)
經(jīng)過前面兩篇的學(xué)習(xí)內(nèi)容,我們已經(jīng)大體知道了R是什么以及R中主要的數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)。盡管了解得很粗淺,但我還是迫不及待的進(jìn)入了“繪圖”這一主題。

R提供了非常豐富的繪圖功能,可以通過命令:demo (graphics) 或者demo(persp)來體驗(yàn)R繪圖功能的強(qiáng)大。

圖形工具是 R 環(huán)境的一個(gè)重要組成部分。 R提供了多種繪圖相關(guān)的命令,分成三類:

高級(jí)繪圖命令:在圖形設(shè)備上產(chǎn)生一個(gè)新的圖區(qū),它可能包括坐標(biāo)軸,標(biāo)簽,標(biāo)題等等。

低級(jí)繪圖命令:在一個(gè)已經(jīng)存在的圖上加上更多的圖形元素,如額外的點(diǎn),線和標(biāo)簽。

交互式圖形命令:允許交互式地用鼠標(biāo)在一個(gè)已經(jīng)存在的圖上添加圖形信息或者提取圖形信息。

在R中執(zhí)行繪圖命令,會(huì)啟動(dòng)一個(gè)圖形設(shè)備驅(qū)動(dòng)(device driver)。該驅(qū)動(dòng)會(huì)打開特定的圖形窗口(graphics window)以顯示交互式的圖片。一旦設(shè)備驅(qū)動(dòng)啟動(dòng),R 繪圖命令可以用來產(chǎn)生統(tǒng)計(jì)圖或者設(shè)計(jì)全新的圖形顯示。此外,R 有一系列圖形參數(shù)。這些圖形參數(shù)可以修改從而定制你的圖形環(huán)境。

高級(jí)繪圖命令

高級(jí)圖形顯示函數(shù)可以根據(jù)數(shù)據(jù)顯示完整的圖形(chart),包括坐標(biāo)軸,標(biāo)簽、標(biāo)題、序列等。如果你之前熟悉其他繪圖庫(比如JFreeChart,matplotlib等)的概念,可以很容易的掌握R中的繪圖函數(shù)。

圖表類型

R支持很多圖表類型。在擴(kuò)展包里面可能會(huì)提供更多的圖表類型。下表給出R基本環(huán)境中支持的圖表類型及其對(duì)應(yīng)的繪圖函數(shù):

  1. plot(x)          以x的元素值為縱坐標(biāo)、以序號(hào)為橫坐標(biāo)繪圖 
  2. plot(x,y)        x(在x-軸上)與y(在y-軸上)的二元作圖 
  3. sunflowerplot(x,y)同上,但是以相似坐標(biāo)的點(diǎn)作為花朵,其花瓣數(shù)目為點(diǎn)的個(gè)數(shù) 
  4. pie(x)餅圖 
  5. boxplot(x)盒形圖(“box-and-whiskers”) 
  6. stripchart(x)把x的值畫在一條線段上,樣本量較小時(shí)可作為盒形圖的替代 
  7. coplot(x~y|z)關(guān)于z的每個(gè)數(shù)值(或數(shù)值區(qū)間)繪制x與y的二元圖 
  8. interaction.plot(f1, f2, y)如果f1和f2是因子,作y的均值圖,以f1的不同值作為x軸, 而f2的不同值對(duì)應(yīng)不同曲線;可以用選項(xiàng)fun指定y的其他的統(tǒng)計(jì)量(缺省計(jì)算均值,fun=mean) 
  9. matplot(x,y)二元圖,其中x的第一列對(duì)應(yīng)y的第一列,x的第二列對(duì)應(yīng)y的第二列,依次類推。 
  10. dotchart(x)如果x是數(shù)據(jù)框,作Cleveland點(diǎn)圖(逐行逐列累加圖) 
  11. fourfoldplot(x)用四個(gè)四分之一圓顯示2X2列聯(lián)表情況(x必須是dim=c(2,2,k)的數(shù)組,或者是dim=c(2,2)的矩陣,如果k=1) 
  12. assocplot(x)Cohen–Friendly圖,顯示在二維列聯(lián)表中行、列變量偏離獨(dú)立性的程度 
  13. mosaicplot(x)列聯(lián)表的對(duì)數(shù)線性回歸殘差的馬賽克圖 
  14. pairs(x)如果x是矩陣或是數(shù)據(jù)框,作x的各列之間的二元圖 
  15. plot.ts(x)如果x是類"ts"的對(duì)象,作x的時(shí)間序列曲線,x可以是多元的,但是序列必須有相同的頻率和時(shí)間 
  16. ts.plot(x)同上,但如果x是多元的,序列可有不同的時(shí)間但須有相同的頻率 
  17. hist(x)x的頻率直方圖 
  18. barplot(x)x的值的條形圖 
  19. qqnorm(x)正態(tài)分位數(shù)-分位數(shù)圖 
  20. qqplot(x,y)y對(duì)x的分位數(shù)-分位數(shù)圖 
  21. contour(x,y,z)等高線圖(畫曲線時(shí)用內(nèi)插補(bǔ)充空白的值) 
  22. filled.contour(x,y,z)同上,等高線之間的區(qū)域是彩色的,并且繪制彩色對(duì)應(yīng)的值的圖例 
  23. image(x,y,z)同上,但是實(shí)際數(shù)據(jù)大小用不同色彩表示 
  24. persp(x,y,z)同上,但為透視圖 
  25. stars(x)如果x是矩陣或者數(shù)據(jù)框,用星形和線段畫出 
  26. symbols(x,y,...)在由x和y給定坐標(biāo)畫符號(hào)(圓,正方形,長(zhǎng)方形,星,溫度計(jì)式或者盒形圖),符號(hào)的類型、大小、顏色等由另外的變量指定 
  27. termplot(mod.obj)回歸模型(mod.obj)的(偏)影響圖 
  28. heatmap(x)熱度圖 

其他的包中可能也會(huì)提供額外的圖表類型,比如:

quantmod包提供的K線圖:chartSeries()

portfolio包提供的tree map(板塊層級(jí)圖):map.market(id, area, group, color)用矩形面積來表示數(shù)值,可用于分析磁盤空間占用

lattice包提供的平行坐標(biāo)圖:parallel(data)

  1. > x = rnorm(10) 
  2. > y = rnorm(10) 
  3. > plot(x,y) 

 Screenshot

繪圖參數(shù)

很多時(shí)候,你可能需要調(diào)整圖形的顯示方式。R的繪圖參數(shù)幾乎可以定制圖形的任何顯示(如標(biāo)題,坐標(biāo)軸,顏色,字體等)。

R 擁有一個(gè)數(shù)目很大的圖形參數(shù)列表。該列表包括控制線條樣式,顏色,圖形排列和文字對(duì)齊等方面的參數(shù)。

更改圖形參數(shù)有兩種方式,一種是直接在繪圖函數(shù)中設(shè)置參數(shù),這種方式只影響當(dāng)前繪圖函數(shù),但是不是所有的參數(shù)都能夠通過這種方式設(shè)置;另一種是通過par()函數(shù)設(shè)置,這種方式會(huì)影響當(dāng)前繪圖設(shè)備上的所有圖形。

下面先看一個(gè)直接設(shè)置參數(shù)的例子:

  1. >plot(x,y,type="b",main="main title",sub='sub title',xlab="x axis",ylab='y axis',asp=0.2) 

1 $ screenshot

使用par()函數(shù)的例子:

  1. opar <- par()#備份原來的繪圖參數(shù) 
  2. par(bg="lightyellow"col.axis="blue"mar=c(4, 4, 2.5, 0.25)) 
  3. plot(x, y, xlab="Ten random values"ylab="Ten other values"
  4. xlim=c(-2, 2), ylim=c(-2, 2), pch=22col="red"bg="yellow"
  5. bty="l"tcl=-.25, las=1cex=1.5) 
  6. par(opar)#恢復(fù)原來的繪圖參數(shù) 

通過?par可以查到所有參數(shù)的說明。下面列舉最常用的一些參數(shù):

adj控制關(guān)于文字的對(duì)齊方式,0是左對(duì)齊,0.5是居中對(duì)齊,1是右對(duì)齊,值> 1時(shí)對(duì)齊位置在文本右邊的地方,取負(fù)值時(shí)對(duì)齊位置在文本左邊的地方;如果給出兩個(gè)值(例如c(0, 0)),第二個(gè)只控制關(guān)于文字基線的垂直調(diào)整

bg指定背景色(例如bg="red", bg="blue"; 用colors()可以顯示657種可用的顏 色名)

bty控制圖形邊框形狀,可用的值為: "o", "l", "7", "c", "u" 和"]" (邊框和字符 的外表相像);如果bty="n"則不繪制邊框

cex控制缺省狀態(tài)下符號(hào)和文字大小的值;另外,cex.axis控制坐標(biāo)軸刻度數(shù)字大小,cex.lab控制坐標(biāo)軸標(biāo)簽文字大小,cex.main控制標(biāo)題文字大小,cex.sub控制副標(biāo)題文字大小

col控制符號(hào)的顏色;和cex類似,還可用:col.axis, col.lab, col.main, col.sub

font控制文字字體的整數(shù)(1: 正常,2: 斜體,3: 粗體,4: 粗斜體);和cex類似, 還可用: font.axis, font.lab, font.main, font.sub

las控制坐標(biāo)軸刻度數(shù)字標(biāo)記方向的整數(shù)(0: 平行于軸,1: 橫排,2: 垂直于軸,3: 豎排)

lty控制連線的線型,可以是整數(shù)(1: 實(shí)線,2: 虛線,3: 點(diǎn)線,4: 點(diǎn)虛線,5: 長(zhǎng)虛線,6: 雙虛線),或者是不超過8個(gè)字符的字符串(字符為從"0"到"9"之間的數(shù)字)交替地指定線和空白的長(zhǎng)度,單位為磅(points)或象素,例如lty="44"和lty=2效果相同

lwd控制連線寬度的數(shù)字

mar控制圖形邊空的有4個(gè)值的向量c(bottom, left, top, right), 缺省值 為c(5.1, 4.1, 4.1, 2.1)

mfcolc(nr,nc)的向量,分割繪圖窗口為nr行nc列的矩陣布局,按列次序使用各子窗口

mfrow同上,但是按行次序使用各子窗口(參照 4.1.2)

pch控制符號(hào)的類型,可以是1到25的整數(shù),也可以是""里的單個(gè)字符

2 $ screenshot

ps控制文字大小的整數(shù),單位為磅(points)

pty指定繪圖區(qū)域類型的字符,"s": 正方形,"m":最大利用

tck指定軸上刻度長(zhǎng)度的值,單位是百分比,以圖形寬、高中最小一個(gè)作為基數(shù); 如果tck=1則繪制grid

tcl同上,但以文本行高度為基數(shù)(缺省下tcl=-0.5)

xaxt如果xaxt="n"則設(shè)置x-軸但不顯示(有助于和axis(side=1, ...)聯(lián)合使用)

yaxt如果yaxt="n"則設(shè)置y-軸但不顯示(有助于和axis(side=2, ...)聯(lián)合使用)

低級(jí)繪圖命令

R還可以在現(xiàn)有圖形(通過高級(jí)繪圖命令繪制)的基礎(chǔ)上增加一些額外的顯示,如標(biāo)題、繪制坐標(biāo)軸、在特定的位置增加圖形(比如輔助線,擬合線)或文字等。

這些函數(shù)在R中稱為低級(jí)作圖命 令(low-level plotting commands)。一些常用的低級(jí)圖形命令包括:

scatter.smooth(x, y, …)LOESS(局部加權(quán)散點(diǎn)平滑)擬合曲線

points(x, y)添加點(diǎn)(可以使用選項(xiàng)type=)

lines(x, y)同上,但是添加線

text(x, y, labels,…)在(x,y)處添加用labels指定的文字;典型的用法是: plot(x, y, type=”n”); text(x, y, names)

mtext(text,side=3, line=0,…)在邊空添加用text指定的文字,用side指定添加到哪一邊(參照 下面的axis());line指定添加的文字距離繪圖區(qū)域的行數(shù)

segments(x0, y0,x1, y1)從(x0,y0)各點(diǎn)到(x1,y1)各點(diǎn)畫線段

arrows(x0, y0,x1, y1, angle= 30,code=2)同上但加畫箭頭,如果code=2則在各(x0,y0)處畫箭頭,如 果code=1則在各(x1,y1)處畫箭頭,如果code=3則在兩端都畫箭頭; angle控制箭頭軸到箭頭邊的角度

abline(a,b)繪制斜率為b和截距為a的直線

abline(h=y)在縱坐標(biāo)y處畫水平線

abline(v=x)在橫坐標(biāo)x處畫垂直線

abline(lm.obj)畫由lm.obj確定的回歸線

rect(x1, y1, x2, y2)繪制長(zhǎng)方形,(x1, y1)為左下角,(x2,y2)為右上角

polygon(x, y)繪制連接各x,y坐標(biāo)確定的點(diǎn)的多邊形

legend(x, y, legend)在點(diǎn)(x,y)處添加圖例,說明內(nèi)容由legend給定

title()添加標(biāo)題,也可添加一個(gè)副標(biāo)題

axis(side, vect)畫坐標(biāo)軸,side=1時(shí)畫在下邊,side=2時(shí)畫在左邊,side=3時(shí)畫在上邊,side=4時(shí)畫在右邊。可選參數(shù)at指定畫刻度線的位置坐標(biāo)

box()在當(dāng)前的圖上加上邊框

rug(x)在x-軸上用短線畫出x數(shù)據(jù)的位置

locator(n, type=”n”, …)在用戶用鼠標(biāo)在圖上點(diǎn)擊n次后返回n次點(diǎn)擊的坐標(biāo)(x, y);并可以在點(diǎn)擊處繪制符號(hào)(type=”p”時(shí))或連線(type=”l”時(shí)),缺省情 況下不畫符號(hào)或連線

下面的例子中,使用plot(...,type="n")繪制一個(gè)“空白”的圖形, 然后用低級(jí)函數(shù)來添加點(diǎn),坐標(biāo)軸,標(biāo)簽等:

  1. opar <- par()#備份繪圖參數(shù) 
  2. par(bg="lightgray"mar=c(2.5, 1.5, 2.5, 0.25))#設(shè)置繪圖參數(shù) 
  3. plot(x, y, type="n"xlab=""ylab=""xlim=c(-2, 2),  ylim=c(-2, 2), xaxt="n"yaxt="n")#繪制“空白”圖形,設(shè)定坐標(biāo)軸范圍 
  4. rect(-3, -3, 3, 3, col="cornsilk")#修改繪圖區(qū)域的顏色 
  5. points(x, y, pch=10col="red"cex=2)#畫點(diǎn) 
  6. axis(side=1, c(-2, 0, 2), tcl=-0.2, labels=FALSE)#添加坐標(biāo)軸 
  7. axis(side=2, -1:1, tcl=-0.2, labels=FALSE
  8. title("How to customize a plot with R (ter)",#添加標(biāo)題 
  9. font.main=4adj=1cex.main=1
  10. mtext("Ten random values", side=1line=1at=1cex=0.9, font=3)#繪制坐標(biāo)軸標(biāo)簽 
  11. mtext("Ten other values", line=0.5, at=-1.8, cex=0.9, font=3
  12. mtext(c(-2, 0, 2), side=1las=1at=c(-2, 0, 2), line=0.3, 
  13. col="blue"cex=0.9) 
  14. mtext(-1:1, side=2las=1at=-1:1, line=0.2, col="blue"cex=0.9) 
  15. par(opar)#恢復(fù)繪圖參數(shù) 
3 $ screenshot

交互式繪圖命令

有時(shí)需要根據(jù)用戶的想法而不是數(shù)據(jù)進(jìn)行繪圖,即交互式繪圖。R對(duì)此有很好的支持,允許用戶直接用鼠標(biāo)在一個(gè)圖上提取和提交信息。

R中最簡(jiǎn)單、最常用的函數(shù)是locator(n, type)。等待用戶用鼠標(biāo)左鍵點(diǎn)擊n個(gè)位置,如果設(shè)置了type,還可以根據(jù)這n個(gè)位置直接進(jìn)行低級(jí)繪圖。

比如:

  1. x = rnorm(10) 
  2. plot(x) 
  3. locator(5,"o") 

locator也可以先不繪圖,只把用戶點(diǎn)擊的坐標(biāo)記錄下來:

  1. r = locator(2) 

這個(gè)有意思的交互函數(shù)是identify(x, y, labels),可以參考幫助自己學(xué)習(xí)。

原文鏈接:http://www.cnblogs.com/holbrook/archive/2013/05/13/3075777.html

 

【編輯推薦】

1.R語言學(xué)習(xí)筆記(1):R是什么

1.R語言學(xué)習(xí)筆記(2):數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)

 

責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2013-05-10 14:37:37

2016-11-11 14:12:19

R語言

2009-08-14 15:54:12

C#編程語言

2013-05-10 15:27:07

R語言

2015-08-18 09:42:25

2009-09-04 08:51:33

Java語言

2010-01-27 16:52:31

C++語言學(xué)習(xí)

2010-01-15 10:32:21

C++語言

2009-08-28 17:19:15

C#語言學(xué)習(xí)

2015-01-12 09:40:41

iOS學(xué)習(xí)資料整理

2015-01-12 12:12:00

iOS學(xué)習(xí)資料整理

2012-02-13 15:48:42

Java

2009-10-19 09:16:08

VB.NET語言

2010-01-27 09:12:01

C++語言學(xué)習(xí)

2017-09-08 08:48:18

Swift語言數(shù)據(jù)分段機(jī)器學(xué)習(xí)

2017-04-05 18:10:05

R語言開發(fā)Ross

2010-07-13 15:43:57

Perl語言

2010-07-16 12:50:45

Perl語言

2010-01-18 11:20:58

C++語言

2011-05-26 16:04:17

java
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久久久久久av | 亚洲男人的天堂网站 | 精品区 | 久久久国产亚洲精品 | 国产99久久精品一区二区永久免费 | 91av在线视频观看 | 成人免费大片黄在线播放 | 天天干人人 | 狼色网 | 成人免费视频网站在线观看 | 国产精品视频播放 | 午夜资源 | 成人免费淫片aa视频免费 | 免费视频二区 | 成人在线欧美 | 中文字幕乱码一区二区三区 | 先锋资源在线 | 亚洲国产成人av | 国产成人精品一区二 | 日韩中文字幕一区 | 亚洲精品国产电影 | 一区二区三区在线观看视频 | 密乳av| 在线免费观看黄视频 | 电影午夜精品一区二区三区 | 亚洲精品成人 | www..99re| www.亚洲精品 | 国产电影精品久久 | 国产精品99久久久久久宅男 | 91精品国产综合久久久密闭 | 国产精品国产成人国产三级 | 久久r久久| 亚洲色在线视频 | 国产精品免费一区二区三区 | 逼逼网| 国产精品久久久久久久久久久久久 | 综合一区二区三区 | 亚洲va欧美va天堂v国产综合 | 日韩中文字幕在线观看 | 手机看片169 |