神奇小工具丨ggplot处理标签遮盖问题工具ggrepel
有时样本比较多,而我们想在图形中添加标签的时候,容易出现标签遮盖的问题,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) #载入上期介绍的主题配置包
library(ggrepel) #载入ggrepel
ggrepel就一个函数geom_text_repel,是对geom_text的封装,geom_text的参数geom_text都可以用(除了vjust,hjust,position,check_overlap),常用参数如下:
参数 | 说明 |
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中的实现过程,并没有特意追求美观,故很多图的细节部分修饰有限,大家重点理解实现过程。
有任何问题,欢迎在文末留言讨论。
扫码关注,获取更多精彩内容
我
是
彩
蛋
关注公众号后:
回复文字:好好学习,收听喜马拉雅FM电台栏目《一分钟听懂NGS基础概念》,让生信分析不再遥不可及。
回复文字:果然科学,给你看另一篇好玩的文章。