參考書:《Numerical Ecology with R》-Daniel Borcard -F-P
1钥星、基礎(chǔ)函數(shù)(數(shù)據(jù)Doubs魚類數(shù)據(jù))
table統(tǒng)計(jì)數(shù)據(jù)出現(xiàn)的頻次
> z
?[1] 1 1 1 2 5 5 7 7 7 7 7 7
> table(z)
z
1 2 5 7?
3 1 2 6?
unlist函數(shù)的作用,就是將list結(jié)構(gòu)的數(shù)據(jù)满着,變成非list的數(shù)據(jù)谦炒,即將list數(shù)據(jù)變成字符串向量或者數(shù)字向量的形式。不以列表形式展示
> j<-list(c(1,2,3),5)
> j
[[1]]
[1] 1 2 3
[[2]]
[1] 5
> unlist(j)
[1] 1 2 3 5
nrow 提取數(shù)據(jù)總行數(shù)
ncol 提取數(shù)據(jù)總列數(shù)
head 只展示數(shù)據(jù)前幾行
定義數(shù)據(jù)目標(biāo)數(shù)據(jù)风喇,對(duì)于大數(shù)據(jù)宁改,只需要顯示前幾行或者前幾列時(shí)如spe數(shù)據(jù)
spe( 1:5 , 1:10 ) 表示顯示數(shù)據(jù)spe前五行前五列
dim 提取數(shù)據(jù)框維度(行數(shù)列數(shù))
> dim(spe)
[1] 30 27
colnames 提取數(shù)據(jù)列數(shù)
rownames 提取數(shù)據(jù)行數(shù)
summary 以列為單位對(duì)列變量進(jìn)行描述性統(tǒng)計(jì)
> summary(spa)
? ? ? ?X? ? ? ? ? ? ? ? Y? ? ? ? ?
?Min.? ?:? 0.00? ?Min.? ?: 20.00??
?1st Qu.: 80.94? ?1st Qu.: 42.13??
?Median : 96.56? ?Median : 73.14??
?Mean? ?: 97.58? ?Mean? ?: 66.57??
?3rd Qu.:130.03? ?3rd Qu.: 89.13??
?Max.? ?:159.44? ?Max.? ?:105.43??
?range 數(shù)據(jù)范圍?
range(spe)
[1] 0 5
barplot? 柱狀圖
?barplot(height, width = 1, space = NULL,names.arg = NULL, legend.text = NULL,beside = FALSE,horiz = FALSE, density = NULL, angle =45,col = NULL,?border =par("fg"),main = NULL, sub = NULL, xlab = NULL,ylab = NULL,xlim = NULL, ylim = NULL, xpd = TRUE,log = "",axes = TRUE,?axisnames = TRUE, cex.axis=par("cex.axis"),cex.names=par("cex.axis"), inside = TRUE, plot = TRUE, axis.lty =0, offset = 0, add = FALSE, args.legend = NULL, ...)
density:底紋的密度。默認(rèn)值為NULL
angle:設(shè)置底紋的斜率
names.arg:邊框的名字
xlim和ylim:設(shè)置圖形x軸與y軸的范圍魂莫。
xlab和ylab:設(shè)置x軸與y軸的lable
axes:邏輯參數(shù)还蹲。設(shè)置圖形是否顯示x軸或y軸。(如果TRUE耙考,垂直(或水平谜喊,horiz如果是真實(shí)的)軸繪制)
las:與axes參數(shù)相對(duì)應(yīng),表示坐標(biāo)軸label的方向(0和1)
plot:邏輯參數(shù)倦始。設(shè)置是否顯示條形圖斗遏。
beside:邏輯參數(shù)。如果FALSE楣号,那么將繪畫堆疊式的條形最易;如果是TRUE怒坯,將繪畫并列式條形炫狱。
cex.axis:設(shè)置坐標(biāo)軸數(shù)值的膨脹率藻懒。比如cex.axis=1.5
cex.names:?設(shè)置條形標(biāo)簽(barlabels)的膨脹率。比如cex.axis=1.5
col:?設(shè)置條形底紋或者填充顏色视译。
gray:由白色到黑色的gray(0:8 / 8)0為純白嬉荆,1為純黑,這兒分了8個(gè)程度
border:設(shè)置條形邊緣顏色酷含。如果設(shè)置為NA鄙早,則消除了邊緣
width:設(shè)置條形的寬度
axis.lty:設(shè)置x軸的類型(類似lty)。默認(rèn)axis.lty=0
names.arg:設(shè)置條形標(biāo)簽(barlabels)椅亚。
horiz:邏輯參數(shù)限番。設(shè)置圖形是水平或是垂直
space:設(shè)置各個(gè)條形間的寬度。相當(dāng)于各個(gè)條形寬度的一部分呀舔。
axisnames:邏輯參數(shù)弥虐。設(shè)置是否顯示條形標(biāo)簽
xaxt= "n"?去除橫坐標(biāo)
yaxt?= ?"n"去除縱坐標(biāo)
legend.text =?是添加文本
args.legend?文本的位置topright,topleft媚赖,(args.legend = list(x = "topleft", cex=2))
add = “TRUE”將barplot加在目前已經(jīng)有的圖上
添加坐標(biāo)軸的標(biāo)簽
axis(side=1, c(-2, 0, 2),tcl=-0.2, labels=FALSE)#添加坐標(biāo)軸霜瘪,slide=1代表橫坐標(biāo),slide=2代表縱坐標(biāo)惧磺,tcl的值代表添加坐標(biāo)軸的那個(gè)刻度的長度颖对,
圖例函數(shù)legend()主要參數(shù)解釋:
除了利用x,y設(shè)置圖例的坐標(biāo)外,用”topleft”磨隘, "center"缤底,"bottomright"等設(shè)置位置非常方便。ncol設(shè)置圖例的列數(shù), ?horiz設(shè)置圖例的排列方向番捂。常有的參數(shù)還有col训堆,lty,pch
?legend(x,y = NULL, legend, fill = NULL, col = par("col"),border="black", lty, lwd, pch,angle = 45, density = NULL, bty = "o", bg =par("bg"),box.lwd = par("lwd"), box.lty= par("lty"), box.col = par("fg"),pt.bg= NA, cex = 1, pt.cex = cex, pt.lwd = lwd,xjust = 0, yjust = 1, x.intersp = 1,y.intersp = 1,adj = c(0, 0.5), text.width = NULL,text.col = par("col"),merge = do.lines && has.pch,trace = FALSE,plot = TRUE, ncol = 1, horiz = FALSE,title = NULL, inset = 0, xpd, title.col = text.col)?
x和y:設(shè)置圖例在圖片上的位置。
title:設(shè)置圖例標(biāo)題凛忿。(在圖例盒子里)持灰。
title.col:設(shè)置圖例標(biāo)題的顏色。
text.col:?設(shè)置圖例中文本文字的顏色鲁沥。比如說:text.col=’red’。
text.width:?設(shè)置圖例文本文字的寬度耕魄。寬度比例與x軸相關(guān)画恰。
trace:邏輯參數(shù)。如果設(shè)置為TRUE吸奴,那么顯示出函數(shù)計(jì)算過程允扇。
fill:?設(shè)置一個(gè)填充了指定顏色的盒子放在文本旁邊缠局。
border:指定該盒子的邊緣顏色。
lty與lwd:設(shè)置圖例中線條的類型以及粗細(xì)考润。
density與angle:設(shè)置圖例中小盒子的底紋密度和角度狭园。
bty:設(shè)置圖例盒子的類型。只能選擇o或者n糊治。
bg:設(shè)置圖例盒子的背景顏色唱矛。
box.lty/box.lwd/box.col:設(shè)置圖例盒子邊緣線類型,粗細(xì)井辜,顏色绎谦。
pt.bg:設(shè)置圖例中點(diǎn)的背景顏色。
pt.cex:設(shè)置點(diǎn)的膨脹率粥脚。
pt.lwd:設(shè)置點(diǎn)的邊緣線的粗細(xì)窃肠。
xjust與yjust:上下調(diào)整圖例的位置。
x.intersp與y.intersp:設(shè)置圖例盒子空間大小刷允。
ncol:設(shè)置圖例顯示的列數(shù)冤留。
horiz:設(shè)置水平方式顯示圖例。默認(rèn)為垂直方式顯示
hist(): breaks設(shè)置每個(gè)柱的間距恃锉;freq柱圖表示count或frequency搀菩;polt設(shè)置是否畫圖;density和angle可以設(shè)置柱上的斜線破托;axes設(shè)置是否需要畫坐標(biāo)軸肪跋; cor設(shè)置柱圖的顏色;border設(shè)置柱圖邊界的顏色土砂;xlim設(shè)置橫軸范圍州既;ylim設(shè)置縱軸范圍。
layout():mat用矩陣設(shè)置窗口的劃分萝映,矩陣的0元素表示該位置不畫圖吴叶,非0元素必須包括從1開始的連續(xù)的整數(shù)值,比如:1……N序臂,按非0元素的大小設(shè)置圖形的順序蚌卤。widths用來設(shè)置窗口不同列的寬度,heights設(shè)置不同行的高度奥秆。par()的mfcol,和mfrow參數(shù)也有類似layout的功能逊彭,不過相對(duì)layout就遜色多了。
par():mar設(shè)置圖離四個(gè)邊緣的距離构订;bg設(shè)置背景顏色侮叮;xaxt和yaxt設(shè)置坐標(biāo)軸標(biāo)簽的類型(=”n”表示不畫軸標(biāo)簽);xlim和ylim設(shè)置坐標(biāo)軸的范圍悼瘾。
axis():las設(shè)置坐標(biāo)軸標(biāo)簽的方式(水平囊榜,垂直……)审胸。
mtext():為四個(gè)坐標(biāo)軸添加標(biāo)簽。
text():在給定坐標(biāo)的位置寫字卸勺。
lines():lty設(shè)置線的類型砂沛;lwd設(shè)置線的寬度。
points():pch設(shè)置點(diǎn)的類型孔庭。
heatmap():Rowv和Colv設(shè)置是否需要按行或列聚類尺上;scale設(shè)置是否需要按行或列標(biāo)準(zhǔn)化材蛛;na.rm設(shè)置是否移去NA圆到;RowSideColors和ColSideColors可以在行或列邊緣添加顏色;keep.dendro設(shè)置是否畫聚類樹卑吭。
dendrogram():'nodePar'和'edgePar'都是list芽淡,可以方便的設(shè)置節(jié)點(diǎn)和邊的各種屬性,如:顏色豆赏,樣式挣菲,寬度,標(biāo)簽……掷邦。
plot 散點(diǎn)圖
plot(x, y = NULL, type = "p", xlim = NULL, ylim = NULL, log = "", main = NULL, sub = NULL, xlab = NULL, ylab = NULL, ann = par("ann"), axes = TRUE, frame.plot = axes, panel.first = NULL, panel.last = NULL, asp = NA, ...)
主要參數(shù)的含義如下:
(1)type為一個(gè)字符的字符串白胀,用于給定繪圖的類型,可選的值如下:
"p":繪點(diǎn)(默認(rèn)值)抚岗;
"l":繪制線或杠;
"b":同時(shí)繪制點(diǎn)和線;
"c":僅繪制參數(shù)"b"所示的線宣蔚;
"o":同時(shí)繪制點(diǎn)和線向抢,且線穿過點(diǎn);
"h":繪制出點(diǎn)到橫坐標(biāo)軸的垂直線胚委;
"s":繪制出階梯圖(先橫后縱)挟鸠;
"S":繪制出階梯圖(先縱后豎);
"n":作空?qǐng)D亩冬。
(2)main參數(shù) 字符串艘希,給出圖形的標(biāo)題;
(3)sub參數(shù) 字符串硅急,給出圖形的子標(biāo)題覆享;
(4)xlab 和 ylab參數(shù) 字符串,用于給出x軸和y軸的標(biāo)簽铜秆。
(5)xlim 和 ylim參數(shù) 都是二維向量淹真,分別表示x軸和y軸的取值范圍。
1连茧、符號(hào)和線條
? ? pch:指定繪制點(diǎn)所使用的符號(hào)核蘸,取值范圍[0, 24]巍糯,其中4是“差號(hào)”,20是“點(diǎn)”
? ? cex:指定符號(hào)的大小客扎。cex是一個(gè)數(shù)值祟峦,表示pch的倍數(shù),默認(rèn)是1.5倍
? ? lty:指定線條類型徙鱼。lty=1代表實(shí)線宅楞,2至6都是虛線,虛的程度不一樣
? ? lwd:指定線條寬度袱吆,默認(rèn)值為lwd=1厌衙,可以適當(dāng)修改1.5倍、2倍等
2绞绒、顏色
? ? col:默認(rèn)繪圖顏色婶希。某些函數(shù)(如lines、pie)可以接受一個(gè)含有顏色值的向量蓬衡,并自動(dòng)循環(huán)使用喻杈。
? ? ? ? ? ?例如:col=c("red", "blue")需要繪制三條線,那么三條顏色分別為red狰晚、blue筒饰、red
? ?col.axis:坐標(biāo)軸刻度文字的顏色,不是坐標(biāo)軸的顏色
? ? col.lab:坐標(biāo)軸標(biāo)簽(名稱)的顏色
? ? col.main:標(biāo)題的顏色
? ? col.sub:副標(biāo)題的顏色
? ? fg:圖形的前景色
? ? bg:圖形的背景色( 先要用pch指定形狀)
3壁晒、文本屬性(用來指定字號(hào)瓷们、字體、字樣)
? ? cex.axis:坐標(biāo)軸刻度文字的縮放倍數(shù)
????cex.lab:坐標(biāo)軸標(biāo)簽(名稱)的縮放倍數(shù)
? ? cex.main:標(biāo)題的縮放倍數(shù)
? ? cex.sub:副標(biāo)題的縮放倍數(shù)
? ? font:整數(shù)讨衣。用于指定字體樣式换棚。1常規(guī)、2粗體反镇、3斜體固蚤、4粗斜體
4、圖形尺寸與圖形邊界
? ? pin:以英寸表示圖形的寬和高
? ? mai:以數(shù)值向量表示邊界大小歹茶,順序?yàn)?下夕玩、左、上惊豺、右"燎孟,單位為英寸
????mar:以數(shù)值向量表示邊界大小,順序?yàn)?下尸昧、左揩页、上、右"烹俗,單位為英分爆侣,默認(rèn)值c(5, 4, 4, 2)+0.1
5萍程、標(biāo)題
? ? 可以使用函數(shù)title,格式為:
? ? ? ? title(main = " ", sub = " ", xlab = " ", ?ylab = " ")
? ?也可以直接把title里面的參數(shù)直接放在plot()里面
6兔仰、坐標(biāo)軸
? ? ?axes=FALSE ?將禁用全部坐標(biāo)軸茫负,框架和刻度全部沒有了
? ? ?xaxt="n" ? 禁用x軸的刻度線
? ? ?yaxt="n" ? 禁用y軸的刻度線
? ? ?asp 限定?y/x?aspect 比率
也可以通過axis函數(shù)自定義axis(……) ? ?
? ? ?side:一個(gè)整數(shù)。表示在圖形的哪邊繪制坐標(biāo)軸(1=下乎赴,2=左忍法,3=上,4=右)
? ??at:一個(gè)數(shù)值向量榕吼,表示需要繪制刻度線的位置
????labels:一個(gè)字符型向量(也可以是數(shù)值型)饿序,表示刻度線旁邊的文字標(biāo)簽(刻度值),如果整個(gè)不寫友题,則直接使用at的值
? ? ?col:線條和刻度的顏色
? ? ?lty:線條類型
? ? ?las:標(biāo)簽的字體是否平行(=0)或者垂直(=2)坐標(biāo)軸
? ? ?tck:刻度線的長度(默認(rèn)值-0.01嗤堰,負(fù)值表示刻度在圖形外戴质,正值表示刻度在圖形內(nèi)側(cè))
7度宦、參考線
? ? ?????????abline(h=yvalues, v=xvalues)
????????????例如:plot(1:10)
? ? ? ? ? ? ?abline(h = c(1, 5)) ?#則在y=1和5處各有一條水平線
????????????abline(v = c(1, 5)) ?#則在x=1和5處各有一條垂直線
lines 給散點(diǎn)圖連接直線
text 坐標(biāo)軸中添加文字,格式:text(x,y,"內(nèi)容",cex = ,col= )
par 繪圖窗口分成多個(gè)區(qū)域
par(mfrow=c(a,b)):分成a行b列
apply?
例子:
b為:
? ? ? first second
one? ? ? 1? ? ? 4
two? ? ? 2? ? ? 5
three? ? 3? ? ? 6
apply(b,1,sum)
上面的指令代表對(duì)矩陣b進(jìn)行行計(jì)算告匠,分別對(duì)每一行進(jìn)行求和戈抄。函數(shù)涉及了三個(gè)參數(shù):
第一個(gè)參數(shù)是指要參與計(jì)算的矩陣;
第二個(gè)參數(shù)是指按行計(jì)算還是按列計(jì)算后专,1——表示按行計(jì)算划鸽,2——按列計(jì)算;
第三個(gè)參數(shù)是指具體的運(yùn)算參數(shù)戚哎。
sort 數(shù)據(jù)按照升序排列
hist? 立方圖
x: 用于繪制直方圖的數(shù)據(jù)裸诽,該參數(shù)的值為一個(gè)向量
break : 該參數(shù)的指定格式有很多種
第一種: 指定一個(gè)向量,給出不同的斷點(diǎn)
breaks = c(0.5, 1.5, 2.5, 3.5)
第二種:指定分隔好的區(qū)間的個(gè)數(shù)型凳,會(huì)根據(jù)區(qū)間個(gè)數(shù)自動(dòng)去計(jì)算區(qū)間的大小
breaks = seq(0,30,by = 5)
freq: 邏輯值丈冬,默認(rèn)值為TRUE , y軸顯示的是每個(gè)區(qū)間內(nèi)的頻數(shù),F(xiàn)ALSE, 代表顯示的是頻率(= 頻數(shù)/ 總數(shù))
probability : 邏輯值甘畅,和 freq 參數(shù)的作用正好相反埂蕊,TRUE 代表頻率, FALSE 代表頻數(shù)
?labels: 顯示在每個(gè)柱子上方的標(biāo)簽疏唾,
axes : 邏輯值蓄氧,是否顯示軸線
?col : 柱子的填充色
border : 柱子的邊框的顏色,默認(rèn)為black, 當(dāng)border = NA 時(shí)槐脏, 代表沒有邊框
densitty 和 angle , 用線條填充柱子
seq??生成一系列的數(shù)值
seq(a,b,c)
開始數(shù)值為a喉童,結(jié)束數(shù)值為b,步長c,無步長默認(rèn)為1
+, -, * , /?矩陣的四則運(yùn)算顿天,對(duì)應(yīng)位置的元素進(jìn)行運(yùn)算要求矩陣的維數(shù)必須相同
t() 矩陣的行列轉(zhuǎn)置
colSums() 分別對(duì)矩陣的每一列進(jìn)行求和
rowSums() 分別對(duì)矩陣的每一行進(jìn)行求和
colMeans() 分別對(duì)矩陣的每一列進(jìn)行求平均值
rowMeans() 分別對(duì)矩陣的每一行進(jìn)行求平均值
det() 解方程的行列式
crossprod() 解兩個(gè)矩陣的內(nèi)積
outer() 解兩個(gè)矩陣的外積堂氯,又叫叉積
%*% 矩陣乘法重抖,要求第一個(gè)矩陣的列數(shù)與行數(shù)相同
diag() 對(duì)矩陣取對(duì)角元素,若對(duì)象為向量(不管有沒有缺失值)祖灰,則生成以向量為對(duì)角元素的對(duì)角矩陣
solve() 在矩陣可逆的情況下钟沛,對(duì)矩陣求逆矩陣
eigen() 對(duì)矩陣求解特征值和特征向量