散點圖添加文字標記作用
散點圖通常用於兩個或兩個以上數值變量之間關係可視化。將x變量與y變量各值在直角座標系上以點的形式展示兩個變量之間大致關係。
這裏通過一張圖來展示散點圖添加文字標記的作用。
#刪除mtcars15和17行生成模擬數據
data <- mtcars[-c(15,17),]
head(data)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
#載入包
library(ggplot2)
#生成散點圖
ggplot(data) +
geom_point(aes(wt, mpg), color = 'red') +
theme_classic(base_size = 16)
可以看到右下角這個值離其他點比較遠,這時候如果我們知道這個點是哪一行的話,可以通過刪除這個離羣點,來減少其對線性迴歸擬合結果的影響。
這裏僅僅做一個作用說明,如果有適用數據。有興趣的讀者可以嘗試刪除散點圖中的偏離點做線性迴歸與未刪除偏離點數據做一個比較。
geom_text()
ggplot2中geom_text()
函數可以給散點圖添加文字標記,點名稱通過label參數賦值
ggplot(data) +
geom_point(aes(wt, mpg), color = 'red') +
geom_text(aes(wt, mpg, label = rownames(data))) +
theme_classic(base_size = 16)
這時候可以清楚的知道這個離羣點的行名爲Lincoln Contir,這是可以嘗試排除這一行來做線性迴歸擬合。
優化散點圖文字標記
前面圖形中雖然清楚的顯示離羣點的行名,但可以看見圖中由許多文字重疊在一起,並不美觀。
這裏使用ggrepel
包中的geom_text_repel
函數,只需要將geom_text
換成geom_text_repel
即可。
#install.packages("ggrepel")
library(ggrepel)
ggplot(data) +
geom_point(aes(wt, mpg), color = 'red') +
geom_text_repel(aes(wt, mpg, label = rownames(data))) +
theme_classic(base_size = 16)
可以看見散點圖中文字標記顯示非常清楚,重疊情況被大幅度減輕。