作者:丁點helper
來源:丁點幫你
上篇文章中,我們用世界銀行的例子給大家介紹了散點圖怎麼畫,那折線圖呢?
繪製折線圖
如果將散點圖上的點從左往右連接起來,就會得到一個折線圖。今天我們以R中自帶的Orange 數據集為例,來學習折線圖的畫法,該數據集中包含五種橘樹的樹齡和年輪數據。要考察橘樹的年輪如何隨著樹齡變化,先畫個散點圖看看:
# 先看第一種橘樹,提取第一種樹的數據,保存在t1中t1 <- subset(Orange, Tree==1)
戳此複習subset()函數的功能。
# 繪製散點圖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")
可以發現,繪製折線圖使用的仍是plot()函數,其代碼只比散點圖的多了一個用來設置圖形外觀的命令:type='b','b'表示用線條將點連接起來,因此我們就得到了下圖:
折線圖的圖形外觀還可以有很多種,均可通過type命令來完成,下表展示了type可選的取值:
選取上表中各種類型的type值,就可以得到各式各樣的折線圖:
試著調整圖形
雖然上面的圖形已經可以準確表達數據信息,但有時自動生成的圖形可能無法滿足需求。
比如,我們想把上面的散點圖和折線圖放在同一張圖中,便於比較,或者想改變文字的字體、顏色等…… 此時,可以在用plot()作圖前,先用par()函數設置你想改變的參數:
# 設置par()函數par(mfrow=c(1,2),bty='l',cex.main=1.5, col.main='deepskyblue4',font.lab=2, family='Times New Roman')# 繪製散點圖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",col='deepskyblue4', type="b")
大家可以先將這段代碼複製到R中運行(記得先用本文開頭的方法生成t1這個對象),看看出現了什麼?
par(mfrow=c(1,2),bty='l',cex.main=1.5, col.main='deepskyblue4',font.lab=2, family='Times New Roman')
par()是R中用來設置圖形參數的函數。
上面的代碼中,mfrow是圖形整體布局命令,不是針對某個具體的圖形而言的,而是對整個繪圖區域的布局。定義整體有幾行、幾列圖形,其賦值形式為c(行數,列數);
bty是設置圖形邊框類型的函數,其取值及效果如下圖:
cex.main:設置標題文本的放大倍數,還可用cex.axis 和 cex.lab分別設置坐標軸刻度值和名稱文本的放大倍數;
col.main:設置文本標題的顏色,大家能猜出坐標軸刻度值和名稱的顏色如何設置嗎?歡迎留言呀~
font.lab:設置坐標軸名稱的字型:
family:設置圖形中所有文本的字體。
最終得到的圖形如下,你還能想到哪些需要改進或調整的地方呢,我們可以作為今後講授的內容