BTW,開(kāi)始嘗試用Markdown。
下面的例子實(shí)現(xiàn)之前,需要在R中首先輸入一些數(shù)據(jù)。本例采用最簡(jiǎn)單的散點(diǎn)數(shù)據(jù),輸入如下代碼后,得到散點(diǎn)的x與y坐標(biāo)值。
x <- c(0,1,2,3,5,7)
y <- c(-50,-80,-70,5,8,7)
基本繪圖
繪圖的基本命令為plot。如果不帶任何參數(shù)使用plot命令,輸入如下代碼:
plot(x,y)
得到的結(jié)果為下圖:

可以發(fā)現(xiàn)R會(huì)自動(dòng)調(diào)整坐標(biāo)軸。
如果你發(fā)現(xiàn)有不同,比如出來(lái)的圖形是包含邊框的。那也許是我或者你調(diào)整了原始參數(shù),可以用如下命令來(lái)處理。
par(bty = "o")
此處的o為(環(huán)境)參數(shù),可調(diào)整為1,7,c,u,]等。之后所加邊框就如參數(shù)的形狀。
給散點(diǎn)增加連線,可用如下命令:
lines(x,y)
得到的結(jié)果為下圖:

進(jìn)一步,還可以用abline命令,添加其他輔助線。
abline(h=-40)
得到的結(jié)果如下圖:

調(diào)整坐標(biāo)軸
利用yaxt參數(shù),可實(shí)現(xiàn)plot同時(shí),不顯示坐標(biāo)軸。
plot(x,y,yaxt="n",xaxt="n")
得到的結(jié)果如下圖:

如下命令可以得到更復(fù)雜的效果。
plot(x,y,yaxt="n",xlim=c(0,20),ylim=c(-20,20),mgp=c(3,1,0),pos=0,cex.axis=0.5)
得到的結(jié)果如下圖:

在這條plot命令中,xlim和ylim分別定義x軸與y軸的范圍;mgp是控制坐標(biāo)軸標(biāo)題、刻度數(shù)值及軸線相對(duì)距離的參數(shù);pos參數(shù)控制橫軸在圖形中的相對(duì)位置(此例為垂直居中);cex.axis控制圖形中刻度字體的大小。
有時(shí)我們需要對(duì)坐標(biāo)軸做復(fù)雜處理,比如橫縱軸刻度不成比例,甚至同一軸的正負(fù)區(qū)域的刻度也不成比例。對(duì)于這種情況需要在隱藏坐標(biāo)軸后,再自定義出需要的軸。
比如如下命令:
axis(2,at=seq(-20,0),labels=seq(-40,0,2),cex.axis=0.5,mgp=c(3,1,-1))
axis(2,at=seq(0,20),labels=seq(0,20,1),cex.axis=0.5,mgp=c(3,1,-1))
得到的結(jié)果如下圖:

可以看到x軸及y軸的正負(fù)象限的刻度都不同。這一點(diǎn)是通過(guò)axis命令得到的。在這里,參數(shù)2控制所繪制的坐標(biāo)軸位置(可設(shè)置為1-4,分別位于不同方向)。at和labels參數(shù)分別設(shè)置新添加的軸上的點(diǎn)及其刻度。這里要注意的是,這里的點(diǎn)和刻度的值,也受到plot的約束。比如在我們的例子中,plot用ylim設(shè)定了y軸負(fù)象限的范圍為-20,那么如果設(shè)置的at參數(shù)超過(guò)了20的范圍,圖像會(huì)超出顯示范圍。那么這幾個(gè)值之間的關(guān)系是如何的?
這里有幾個(gè)值需要理清:
ylim設(shè)定的-20;
at設(shè)定的-20;
labels設(shè)定的-40;
首先,ylim設(shè)定了此次plot的圖像中,y軸的刻度范圍。在此例中,y軸負(fù)象限只能有-20值域范圍,否則會(huì)超過(guò)圖像范圍。
其次,at設(shè)定了此次繪制的軸的取值范圍,這個(gè)范圍不該超過(guò)ylim的范圍,否則也會(huì)超過(guò)圖像顯示范圍。
最后,注意到上述兩個(gè)參數(shù)只是設(shè)定了軸的范圍,并非為軸上的刻度顯示。這實(shí)際上給調(diào)整坐標(biāo)軸留下了余地。觀察label設(shè)定和最后的結(jié)果可以發(fā)現(xiàn),實(shí)際的刻度值超過(guò)了ylim和at的范圍。也就是說(shuō),雖然實(shí)際坐標(biāo)軸的值域并未發(fā)生變化,但卻可以通過(guò)調(diào)整刻度達(dá)到調(diào)整軸比例的效果。
接下來(lái),cex.axis參數(shù)調(diào)整的是所繪制的軸上字體的大小,由于刻度可能會(huì)變密,所以會(huì)用到。
小結(jié)
plot、par和axis組合使用,能達(dá)到的繪圖效果比較豐富。將來(lái)會(huì)花時(shí)間完全整理,有需要也可以參考如下頁(yè)面獲得幫助。