ggplot2画图时出现重合的点以及标签如何处理?有现成的包gg
2019-09-29 本文已影响0人
gtt儿_生物信息学习
在R中散点图的时候会经常出现,点重合,点的标签重合比较严重的现象,这对我们观察数据有很大的干扰。
用ggrepel包可以很好的解决这个问题。
当我们创建一个数据框
a<-data.frame(num=c(1,2,3,1,4),n=2,name=c("a","b","c","d","e"))
给出的结果如下:
num n name
1 1 2 a
2 2 2 b
3 3 2 c
4 1 2 d
5 4 2 e
library(ggplot2)
ggplot(a)+geom_point(aes(n,num),color="red")+geom_text(aes(n,num,label=name))
image
便签展示如上图所示,a和d重合,那如何把这两个标签分开展示呢,ggrepel就派上用场了。
基本款:
library(ggrepel)
ggplot(a)+geom_point(aes(n,num),color="red")+geom_text_repel(aes(n,num,label=name))
得图如下所示:
image其中a和d分开展示。
当然图形也有很多可以修改的地方:
ggplot(a)+geom_point(aes(n,num),color="red")+geom_label_repel(aes(n,num,label=name))
展示的图形就如下所示:
image如果还不喜欢,可以再根据自己的需求去改。
大部分geom_text()
的参数都适用于geom_text_repel()
,除了以下几个:
-
hjust
-
vjust
-
position
-
check_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
投稿、合作、转载等事宜请留言