天天看點

r語言把多個圖合并在一張圖_R語言繪圖 | 折線圖畫法,如何畫出你滿意的圖?

r語言把多個圖合并在一張圖_R語言繪圖 | 折線圖畫法,如何畫出你滿意的圖?

作者:丁點helper

來源:丁點幫你

上篇文章中,我們用世界銀行的例子給大家介紹了散點圖怎麼畫,那折線圖呢?

繪制折線圖

如果将散點圖上的點從左往右連接配接起來,就會得到一個折線圖。今天我們以R中自帶的Orange 資料集為例,來學習折線圖的畫法,該資料集中包含五種橘樹的樹齡和年輪資料。要考察橘樹的年輪如何随着樹齡變化,先畫個散點圖看看:

# 先看第一種橘樹,提取第一種樹的資料,儲存在t1中t1 
           

戳此複習subset()函數的功能。

# 繪制散點圖plot(t1$age, t1$circumference,         xlab="Age (days)",        ylab="Circumference (mm)",        main="Orange Tree 1 Growth")
           
r語言把多個圖合并在一張圖_R語言繪圖 | 折線圖畫法,如何畫出你滿意的圖?

再畫折線圖:

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

可以發現,繪制折線圖使用的仍是plot()函數,其代碼隻比散點圖的多了一個用來設定圖形外觀的指令:type='b','b'表示用線條将點連接配接起來,是以我們就得到了下圖:

r語言把多個圖合并在一張圖_R語言繪圖 | 折線圖畫法,如何畫出你滿意的圖?

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

r語言把多個圖合并在一張圖_R語言繪圖 | 折線圖畫法,如何畫出你滿意的圖?

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

r語言把多個圖合并在一張圖_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語言把多個圖合并在一張圖_R語言繪圖 | 折線圖畫法,如何畫出你滿意的圖?

cex.main:設定标題文本的放大倍數,還可用cex.axis 和 cex.lab分别設定坐标軸刻度值和名稱文本的放大倍數;

col.main:設定文本标題的顔色,大家能猜出坐标軸刻度值和名稱的顔色如何設定嗎?歡迎留言呀~

font.lab:設定坐标軸名稱的字型:

r語言把多個圖合并在一張圖_R語言繪圖 | 折線圖畫法,如何畫出你滿意的圖?

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

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

r語言把多個圖合并在一張圖_R語言繪圖 | 折線圖畫法,如何畫出你滿意的圖?

繼續閱讀