使用ggplot2畫XY散布圖(Scatter plots using ggplot2)

套路59: 使用ggplot2XY散布圖(Scatter plots using ggplot2)

1. 使用時機: 拿到數據時,對數據的某些基本特徵(集中分散,線性、非線性相關或無關)進行分析了解。

2. 分析類型: 敘述性統計資料視覺化R繪圖。

3. 範例一一組樣本 (資料): 咪路測量手養鳥出生天數(day)與翅膀長度(cm)資料如下:
X (day)        
1
3
4
6
9
10
12
15
17
19
23
25
27
Y (翼長)
1.4
1.5
2.2
2.4
3.1
3.2
3.5
3.9
4.1
4.5
4.7
5.0
5.2
XY是否有線性關係?

第一步: 資料輸入建立資料
  dat <- read.table(header = T, text = "
age length
1 1.4
3 1.5
4 2.2
6 2.4
9 3.1
10 3.2
12 3.5
15 3.9
17 4.1
19 4.5
23 4.7
25 5.0
27 5.2")  # agelength資料以空白分隔
  attach(dat)  # 告知R使用資料dat
  names(dat)  # 指定資料標題。
  dat  # 顯示資料可檢查資料格式是否正確
第二步: 安裝ggplot2程式套件。
第三步: 呼叫ggplot2程式套件備用。
  library(ggplot2)
第四步: 畫圖一使用ggplot2程式套件的函數ggplot代入datagelengthXY散佈圖及回歸線
  ggplot(dat, aes(x = age, y = length)) +
    geom_point(shape = 1)     # 畫空心圓
結果:
第四步: 畫圖二使用ggplot2程式套件的函數ggplot代入datagelengthXY散佈圖及回歸線
  ggplot(dat, aes(x = age, y = length)) +
    geom_point(shape = 1) +    # 畫空心圓
    geom_smooth(method = lm)   # 加回歸線
結果:
# 灰色區域為95%信賴區間
第四步: 畫圖三使用ggplot2程式套件的函數ggplot代入datagelengthXY散佈圖及回歸線
  ggplot(dat, aes(x  =  age, y  =  length)) +
    geom_point(shape = 1) +    # 畫空心圓
    geom_smooth(method = lm, se = FALSE)   # 加回歸線,不畫95%信賴區間
結果:

4. 範例二兩組樣本 (資料): 咪路測量兩組動物體溫(°C)與脈搏資料如下:
體溫1
20.8
20.8
24
24
24
24
26.2
26.2
26.2
26.2
28.4
29
30.4
30.4
脈搏1
67.9
65.1
77.3
78.7
79.4
80.4
85.8
86.6
87.5
89.1
92.6
94.8
96.3
99.7
體溫2
17.2
18.3
18.3
18.9
18.9
20.4
21
21
22.1
23.5
24.2
25.9
26.5
29.6
脈搏2
44.3
47.2
47.6
49.6
50.3
51.8
56.5
58.9
60
63.7
69.8
72.9
77
84

第一步: 資料輸入建立資料使用基本模組(base)read.table函數輸入建立資料儲存到變數dat
   dat <- read.table(header = T, text = "
Species Temp Pulse
ex 20.8 67.9
ex 20.8 65.1
ex 24 77.3
ex 24 78.7
ex 24 79.4
ex 24 80.4
ex 26.2 85.8
ex 26.2 86.6
ex 26.2 87.5
ex 26.2 89.1
ex 28.4 92.6
ex 29 94.8
ex 30.4 96.3
ex 30.4 99.7
niv 17.2 44.3
niv 18.3 47.2
niv 18.3 47.6
niv 18.9 49.6
niv 18.9 50.3
niv 20.4 51.8
niv 21 56.5
niv 21 58.9
niv 22.1 60
niv 23.5 63.7
niv 24.2 69.8
niv 25.9 72.9
niv 26.5 77
niv 29.6 84")  # SpeciesTempPulse資料以空白分隔
    attach(dat)  # 告知R使用資料dat
    names(dat)  # 指定資料標題。
    dat  # 顯示資料可檢查資料格式是否正確

第二步: 安裝ggplot2程式套件。
第三步: 呼叫ggplot2程式套件備用。
  library(ggplot2)
第四步: 畫圖一。
  ggplot(dat, aes(x = Temp, y = Pulse, color = Species, shape = Species)) +
    geom_point()   # XY散佈圖
結果:
第四步: 畫圖二。
  ggplot(dat, aes(x = Temp, y = Pulse, color = Species, shape = Species)) +
    geom_point() +   # XY散佈圖
    geom_smooth(method = lm, fullrange = TRUE)  # 畫回歸線95%信賴區間。
結果:
第四步: 畫圖二。
  ggplot(dat, aes(x = Temp, y = Pulse, color = Species, shape = Species)) +
    geom_point() +   # XY散佈圖
    geom_smooth(method = lm, fullrange = TRUE, se = FALSE) 
# 畫回歸線,不畫95%信賴區間
結果:
5. 範例三非線性關係 (資料): 咪路以河口為起點測量不同距離採樣點河水中的鉛含量,資料如下。
Sample
Dist. (km)
Conc. (mg/L)
1
1.22
40.9
2
1.34
41.8
3
1.51
42.4
4
1.66
43.0
5
1.72
43.4
6
1.93
43.9
7
2.14
44.3
8
2.39
44.7
9
2.51
45.0
10
2.78
45.1
11
2.97
45.4
12
3.17
46.2
13
3.32
47.0
14
3.50
48.6
15
3.53
49.0
16
3.85
49.7
17
3.95
50.0
18
4.11
50.8
19
4.18
51.1
   畫非線性回歸線。
第一步: 資料使用基本模組(base) read.table函數輸入建立資料儲存到變數m
  m <- read.table(header = T, text = "
Dist Conc
1.22 40.9
1.34 41.8
1.51 42.4
1.66 43.0
1.72 43.4
1.93 43.9
2.14 44.3
2.39 44.7
2.51 45.0
2.78 45.1
2.97 45.4
3.17 46.2
3.32 47.0
3.50 48.6
3.53 49.0
3.85 49.7
3.95 50.0
4.11 50.8
4.18 51.1")  # 資料間以空白分隔

attach(m)  # 告知R使用資料m
names(m)  # 指定資料標題。

第二步: 安裝ggplot2程式套件。
第三步: 呼叫ggplot2程式套件備用。
  library(ggplot2)
第四步: 畫圖一。
  ggplot(m, aes(x = Dist, y = Conc)) +
    geom_point(shape = 1)    # 畫空心圓
結果:
第四步: 畫圖二。
  ggplot(m, aes(x = Dist, y = Conc)) +
    geom_point(shape = 1) +    # 畫空心圓
    geom_smooth()   # 加回歸線95%信賴區間。
結果:
第四步: 畫圖三。
  ggplot(m, aes(x = Dist, y = Conc)) +
    geom_point(shape = 1) +    # 畫空心圓
    geom_smooth(se = FALSE)   # 畫回歸線,不畫95%信賴區間
結果:
6. 範例四加橢圓框 (資料): 咪路以河口為起點測量不同距離採樣點河水中的鉛含量,資料如下。
Sample
Dist. (km)
Conc. (mg/L)
1
1.22
40.9
2
1.34
41.8
3
1.51
42.4
4
1.66
43.0
5
1.72
43.4
6
1.93
43.9
7
2.14
44.3
8
2.39
44.7
9
2.51
45.0
10
2.78
45.1
11
2.97
45.4
12
3.17
46.2
13
3.32
47.0
14
3.50
48.6
15
3.53
49.0
16
3.85
49.7
17
3.95
50.0
18
4.11
50.8
19
4.18
51.1
第一步: 資料使用基本模組(base) read.table函數輸入建立資料儲存到變數m
  m <- read.table(header = T, text = "
Dist Conc
1.22 40.9
1.34 41.8
1.51 42.4
1.66 43.0
1.72 43.4
1.93 43.9
2.14 44.3
2.39 44.7
2.51 45.0
2.78 45.1
2.97 45.4
3.17 46.2
3.32 47.0
3.50 48.6
3.53 49.0
3.85 49.7
3.95 50.0
4.11 50.8
4.18 51.1")  # 資料間以空白分隔
  attach(m)  # 告知R使用資料m
  names(m)  # 指定資料標題。

: 安裝程式套件ggplot2
第三步: 呼叫ggplot2
  library(ggplot2)
第四步: 畫圖。
  ggplot(m, aes(x = Dist, y = Conc, color = Dist > 2.5)) +
    geom_point() +    # 畫點
    stat_ellipse()   # 加橢圓分群
結果:

來勁了嗎? 想知道更多?? 補充資料(連結): 關於R繪圖快速入門

留言

這個網誌中的熱門文章

統計不球人 目錄 (Table of Contents)

如何選擇統計方法 1

單因子多樣本中位數差異檢定 (Kruskal-Wallis test)