查看原文
其他

神奇小工具丨ggplot处理标签遮盖问题工具ggrepel

博文 生信者言 2022-03-29


有时样本比较多,而我们想在图形中添加标签的时候,容易出现标签遮盖的问题,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基础概念》,让生信分析不再遥不可及。


回复文字:果然科学,给你看另一篇好玩的文章。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存