iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 18
0
自我挑戰組

新手 R 語言學習紀錄系列 第 18

Day 18- R語言 基礎繪圖函數整理 Part 1

  • 分享至 

  • xImage
  •  

Day 18- R語言的基礎函數繪圖 Part 1
(前言:內個,我只是個剛接觸程式設計的小萌新,如果內文內容或程式碼寫的不對,還請各位大大指教 Orz)

除了昨天介紹的plot以外,R的基礎函數作圖還有很多種,今天先介紹一部分R的其他圖表類型。

今天要學習莖葉圖、點圖及盒型圖

1. 莖葉圖 (Stem-and-leaf plot)
首先要做的圖是莖葉圖,莖葉圖可以讓使用者檢視資料分布,且在同時保留原始資料。一個數字中的前導數字為莖,後續數字為葉。這種圖只適合用來做只含有二位數或小數點的資料,如果數字達到百以上時,莖葉圖的作用就不太大了。

莖葉圖的函數為
stem(x, scale = 莖葉圖長度, width = 莖葉圖寬度, atom = 1e-08(容忍值))
範例:stem(c(44.4,44.5, 46.4, 47.8)),作圖結果如下:
https://ithelp.ithome.com.tw/upload/images/20191004/20120887YSz93P2a39.png

2. 點圖(Dot chart)
第二個要學的是點圖,這個部分跟前幾天看到的plot函數所繪畫的圖沒有太大差異,但是,點圖的函數不是plot,而是dotchart 。這個函數主要繪圖對象是向量,不是data frame或矩陣。

Dotchart函數寫法為:dotchart(向量名稱, …(其他引數,其他詳細引數請見documentation))

範例:電腦教室有三台電腦,已經進行三次性能測試,將結果繪成點圖。

performance <- matrix(sample(30:70, size = 9), ncol = 1, nrow = 9) #三台電腦的測試結果,共9筆資料,這邊以50-70之間的隨機數代表測試結果
cn <- c ("Computer_1", "Computer_1", "Computer_1", "Computer_2", "Computer_2", "Computer_2","Computer_3", "Computer_3", "Computer_3") #3台電腦的3次測試結果
grps <- as.factor(cn) #將3台電腦的名稱各變成一組
cl_col <- c("red", "blue", "dark green")  #分組的顏色,可以直接用顏色名稱指定,要查看顏色名稱,請用 colors函數查詢,顏色色票請見參考資料2
dotchart(performance, labels = cn, main = "Computer performance", groups = grps, gcolor = cl_col, color = cl_col[grps]) #dotchart程式碼,labels以cn表示,groups指定以grps為分組指標,gcolor 指定cl_col為labels顏色,color指定cl_col為資料顏色,並以grps為分組標色。

結果如下圖:
https://ithelp.ithome.com.tw/upload/images/20191004/20120887mnIBnHMef8.png

3. 盒型圖 (Boxplot)
接下來要學的是盒型圖的繪圖。盒型圖的優點就是單張圖形的資料含量很高,一張圖表裡面可以含有最小值、最大值、中位數及第一、三四分位數等資料。從盒型圖中還可以觀察資料是否對稱,非常適合在樣本之間進行比較。

假設今天有五筆考試分數資料,每次滿分1000,欲進行五筆資料的對比,可以使用盒型圖進行比較,以下是我的程式碼:

aa <- c(1000, 555, 32, 5, 399,343, 999) #指定五筆資料
bb <- c(999, 553,245,1,787,452, 3)
cc <- c(462,646,747,254,6,7, 1000)
dd <- c(444,569,208,687,4,66, 980)
ee <- c(456,917,276,386,185,724, 1)
cumulative <- data.frame(aa,bb,cc,dd,ee) #資料框
cumulative #檢視資料框
boxplot(cumulative, #指定資料
        col = rainbow(7), #指定圖表顏色
        outline = TRUE, #開啟outline
        main = "TEST SCORE BOX PLOT", #圖表主標題
        ylab = "score", #y軸標題
        oulier.tagging = TRUE, #開啟極端值標示
        outlier.label =TRUE, 
        pars = list(boxwex = 0.8, staplewex = 0.5, outwex = 0.5), #調整單一表大小
        range = 0.3,  #指定「鬍鬚」(也就是虛線)的延伸程度,公式:range*從盒子延伸出的四分位距
        plot = TRUE) 
summary(aa) #檢視summary
summary(bb)
summary(cc)
summary(dd)
summary(ee) 

繪圖結果如下:
https://ithelp.ithome.com.tw/upload/images/20191004/20120887g1iALWEfhF.png
(圖中的點代表極端值)

參考資料:

  1. https://csp92.pixnet.net/blog/post/37812633-%E8%8E%96%E8%91%89%E5%9C%96

  2. http://www.stat.columbia.edu/~tzheng/files/Rcolor.pdf (R語言支援顏色色票)

  3. https://wiki.mbalib.com/zh-tw/%E7%AE%B1%E7%BA%BF%E5%9B%BE


上一篇
Day 17- R語言 資料視覺化與自訂圖表 Part 2
下一篇
Day 19- R語言 基礎繪圖函數整理 Part 2
系列文
新手 R 語言學習紀錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言