公众号:生物信息学习
ggplot2画图时出现重合的点以及标签如何处理?有现成的包ggrepelmp.
在R中散点图的时候会经常出现,点重合,点的标签重合比较严重的现象,这对我们观察数据有很大的干扰。
用ggrepel包可以很好的解决这个问题。
当我们创建一个数据框
a<-data.frame(num=c(1,2,3,1,4),n=2,name=c("a","b","c","d","e"))
给出的结果如下:
num n name1 1 2 a2 2 2 b3 3 2 c4 1 2 d5 4 2 e
library(ggplot2)ggplot(a)+geom_point(aes(n,num),color="red")+geom_text(aes(n,num,label=name))
便签展示如上图所示,a和d重合,那如何把这两个标签分开展示呢,ggrepel就派上用场了。
基本款:
library(ggrepel)ggplot(a)+geom_point(aes(n,num),color="red")+geom_text_repel(aes(n,num,label=name))
其中a和d分开展示。当然图形也有很多可以修改的地方:
ggplot(a)+geom_point(aes(n,num),color="red")+geom_label_repel(aes(n,num,label=name))
展示的图形就如下所示:
如果还不喜欢,可以再根据自己的需求去改。
大部分geom_text()
的参数都适用于geom_text_repel()
,除了以下几个:
hjustvjustpositioncheck_overlap
ggrepel包为geom_text_repel()
与geom_label_repel()
提供了特有的参数设置:
segment.color:连接点与标签的线段的颜色segment.size:线段的粗细segment.alpha:线段的透明度box.padding:文本框周边填充point.padding:点周围填充arrow:grid:arrow提供的箭头force:强制性将重叠文本散开max.oter:最大迭代次数nudge_x/y:标签开始位置在坐标轴的移动距离direction:允许标签的方向,x、y or both