R語言繪圖|折線圖畫法,如何畫出你滿意的圖?

R語言繪圖|折線圖畫法,如何畫出你滿意的圖?

作者:丁點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”)

R語言繪圖|折線圖畫法,如何畫出你滿意的圖?

再畫折線圖:

# 繪製折線圖plot(t1$age, t1$circumference, xlab=“Age (days)”, ylab=“Circumference (mm)”, main=“Orange Tree 1 Growth”, type=“b”)

可以發現,繪製折線圖使用的仍是plot()函式,其程式碼只比散點圖的多了一個用來設定圖形外觀的命令:type=‘b’,‘b’表示用線條將點連線起來,因此我們就得到了下圖:

R語言繪圖|折線圖畫法,如何畫出你滿意的圖?

折線圖的圖形外觀還可以有很多種,均可透過type命令來完成,下表展示了type可選的取值:

R語言繪圖|折線圖畫法,如何畫出你滿意的圖?

選取上表中各種型別的type值,就可以得到各式各樣的折線圖:

R語言繪圖|折線圖畫法,如何畫出你滿意的圖?

試著調整圖形

雖然上面的圖形已經可以準確表達資料資訊,但有時自動生成的圖形可能無法滿足需求。

比如,我們想把上面的散點圖和折線圖放在同一張圖中,便於比較,或者想改變文字的字型、顏色等…… 此時,可以在用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是設定圖形邊框型別的函式,其取值及效果如下圖:

R語言繪圖|折線圖畫法,如何畫出你滿意的圖?

cex。main:設定標題文字的放大倍數,還可用cex。axis 和 cex。lab分別設定座標軸刻度值和名稱文字的放大倍數;

col。main:設定文字標題的顏色,大家能猜出座標軸刻度值和名稱的顏色如何設定嗎?歡迎留言呀~

font。lab:設定座標軸名稱的字型:

R語言繪圖|折線圖畫法,如何畫出你滿意的圖?

family:設定圖形中所有文字的字型。

最終得到的圖形如下,你還能想到哪些需要改進或調整的地方呢,我們可以作為今後講授的內容

R語言繪圖|折線圖畫法,如何畫出你滿意的圖?