中級繪圖--折線圖


折線圖

如果將散點圖上的點從左往右連接起來,就會得到一個折線圖,以基礎安裝中的Orange據集為例,它包含五種橘樹的樹齡和年輪數據,現要考察第一種橘樹的生長情況:

opar <- par(no.readonly=TRUE)      #設置初始化參數

par(mfrow=c(1,2))       #把畫布分成2部分

t1 <- subset(Orange, Tree==1)       #加載數據集,考察第一種橘樹的生長情況

plot(t1$age, t1$circumference, xlab="Age (days)", ylab="Circumference (mm)",

     main="Orange Tree 1 Growth")       #畫出樹的年齡和生長周長的散點圖

plot(t1$age, t1$circumference, xlab="Age (days)", ylab="Circumference (mm)",main="Orange Tree 1 Growth", type="b")      #畫出樹的年齡和生長周長的折線圖

par(opar)  #還原畫布設置

 

折線圖一般可用下列兩個函數之一來創建:

plot(x, y, type=)

lines(x, y, type=)

xy是要連接的(x, y)點的數值型向量

下圖是折線的類型:

 

上圖顯示了plot()lines()函數中的type參數值在繪圖中的具體表現,值得注意的是plot()lines()函數工作原理並不相同,plot()函數是在被調用時創建一幅新圖,而lines()函數則是在已存在的圖形上添加信息,並不能自己生成圖形。

 

例子:我們可以先通過plot()函數中的type="n"選項來創建坐標軸、標題和其他圖形特征,然后再使用lines()函數添加各種需要繪制的曲線。我們以繪制五種橘樹隨時間推移的生長狀況為例,逐步展示一個更復雜折線圖的創建過程。每種樹都有自己獨有的線條。代碼如下:

Orange$Tree <- as.numeric(Orange$Tree)       #把變量Orange$Tree設置為數值型

ntrees <- max(Orange$Tree)       #取出樹的類型有多少種

xrange <- range(Orange$age)       #range 返回一個包含所有給定參數的最小值和最大值的向量。

yrange <- range(Orange$circumference)

plot(xrange, yrange,        #繪制散點圖的兩個參數

     type="n",        # type="n"選項來創建坐標軸

     xlab="Age (days)",       #設置x軸的名稱

     ylab="Circumference (mm)"       #設置y軸的名稱

)

colors <- rainbow(ntrees)       #設置每種樹不同的顏色

linetype <- c(1:ntrees)       #設置從1ntrees總共幾種不通過的線形

plotchar <- seq(18, 18+ntrees, 1)       #設置線條中圖標不同的類型,圓形、方形等

for (i in 1:ntrees) {        #設置i的取值范圍

  tree <- subset(Orange, Tree==i)        #取出每一個子樹

  lines(tree$age, tree$circumference,        #在原來散點圖的基礎上添加信息

        type="b",         #設置線形為點線

        lwd=2,           #lwd是設置線條的寬度(粗細)

        lty=linetype[i],        # lty設置線條類型,比如i=2意思是繪制虛線

        col=colors[i],          # col設置線條的顏色

        pch=plotchar[i]         #pch設置線條中圖標不同的形狀,比如pch=17是三角標識

  )

}

title("Tree Growth", "example of line plot")       #設置主標題和副標題

legend(xrange[1], yrange[2],          #繪制圖例,xrange[1], yrange[2]用來定位圖例的x軸和y軸坐標

       1:ntrees,          #設置繪制線條的數目

       cex=0.8,           #設置圖例中字體的大小

       col=colors,         #指定圖例中線條的顏色

       pch=plotchar,         #指定圖例線形中不同的圖標

       lty=linetype,            #指定圖例的線形

       title="Tree"             #指定圖列的標題

)

 

結果分析:plot()函數先用來創建空圖形,只設定了軸標簽和軸范圍,並沒有繪制任何數據點,每種橘樹獨有的折線和點都是隨后通過lines()函數來添加的。可以看到,Tree 4Tree 5在整個時間段中一直保持着最快的生長速度,而且Tree 5在大約664天的時候超過了Tree 4


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM