
作者:丁點helper
來源:丁點幫你
上篇文章中,我們用世界銀行的例子給大家介紹了散點圖怎麼畫,那折線圖呢?
繪制折線圖
如果将散點圖上的點從左往右連接配接起來,就會得到一個折線圖。今天我們以R中自帶的Orange 資料集為例,來學習折線圖的畫法,該資料集中包含五種橘樹的樹齡和年輪資料。要考察橘樹的年輪如何随着樹齡變化,先畫個散點圖看看:
# 先看第一種橘樹,提取第一種樹的資料,儲存在t1中t1
戳此複習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:設定圖形中所有文本的字型。
最終得到的圖形如下,你還能想到哪些需要改進或調整的地方呢,我們可以作為今後講授的内容