ggplot2添加散點圖文字標記

散點圖添加文字標記作用

散點圖通常用於兩個或兩個以上數值變量之間關係可視化。將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)

散點圖.png

可以看到右下角這個值離其他點比較遠,這時候如果我們知道這個點是哪一行的話,可以通過刪除這個離羣點,來減少其對線性迴歸擬合結果的影響。

這裏僅僅做一個作用說明,如果有適用數據。有興趣的讀者可以嘗試刪除散點圖中的偏離點做線性迴歸與未刪除偏離點數據做一個比較。

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)

離羣點.png

這時候可以清楚的知道這個離羣點的行名爲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)

repl.png

可以看見散點圖中文字標記顯示非常清楚,重疊情況被大幅度減輕。


R語言tidyss.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章