有时样本比较多,而我们想在图形中添加标签的时候,容易出现标签遮盖的问题,ggplot2的辅助包ggrepel就是专门处理遮盖问题的。
ggrepel(https://github.com/slowkow/ggrepel)是发表在github上的开源包,使用之前是要先安装:
安装稳定版本:
install.packages("ggrepel")
或者安装最新的开发版本:
install.packages("devtools")
devtools::install_github("slowkow/ggrepel")
睁大你的眼睛,原图来袭:
图片来源于ggrepel在github主页
孙老湿举栗子
library(ggplot2)
library(ggthemr) #载入上期介绍的主题配置包
参数
说明
segment.color
连接点与标签线段的颜色
segment.size
线段的粗细
segment.alpha
线段的透明度
box.padding
文本框周边填充
point.padding
点周围填充
arrow
线段添加箭头
force
强制性将重叠文本散开
max.oter
最大迭代次数
nudge_x,nudge_y
标签开始位置在坐标轴的移动距离
我们使用mtcars数据集作为演示,用head()函数查看前6行,用mpg和wt变量绘图:
首先我们用ggplot的geom_text()函数绘图,效果如下:
ggthemr("flat")
p <- ggplot(mtcars, aes(wt, mpg))
geom_point()
geom_text(aes(label = rownames(mtcars)))
p
我们在用geom_text_repel()函数绘图:
p<- ggplot(mtcars, aes(wt, mpg))
geom_point()
geom_text_repel(aes(label =rownames(mtcars)))
p
p<- ggplot(mtcars, aes(wt, mpg, col = factor(cyl)))
geom_point()
geom_text_repel(aes(label =rownames(mtcars)),
box.padding = unit(0.35,"lines"),
point.padding = unit(0.5,"lines"),
show.legend = F,
size = 3)
p
本系列课程主要侧重于讲解图形原理,以及在R中的实现过程,并没有特意追求美观,故很多图的细节部分修饰有限,大家重点理解实现过程。
有任何问题,欢迎在文末留言讨论。