ggplot2添加散点图文字标记

文章目录

    • 散点图添加文字标记作用
    • geom_text()
    • 优化散点图文字标记

散点图添加文字标记作用

散点图通常用于两个或两个以上数值变量之间关系可视化。将x变量与y变量各值在直角坐标系上以点的形式展示两个变量之间大致关系。

这里通过一张图来展示散点图添加文字标记的作用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#删除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参数赋值

1
2
3
4
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即可。

1
2
3
4
5
6
#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