用ggrepel包画图标记不重叠标签

  • A+
所属分类:Script

当我们在图形中添加标签时,标签之间很容易相互重叠,包ggrepel就专门用来解决这个问题! 首先我们来看看通过geom_text()添加标签时的情形:

用ggrepel包画图标记不重叠标签

可以看到可视化效果不是很好。接下来看看包ggrepel的效果。
#geom_text_repel()

geom_text_repel()是基于geom_text()

用ggrepel包画图标记不重叠标签

geom_label_repel()

geom_label_repel()是基于geom_label(),它将标签置于一个小方框中

用ggrepel包画图标记不重叠标签

参数

大部分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

下面举个栗子来详细了解这些参数的图形效果

用ggrepel包画图标记不重叠标签

也可以通过设置参数point.padding=NA不对点进行repel

用ggrepel包画图标记不重叠标签

通过赋值某些label空字符“”来隐藏。

用ggrepel包画图标记不重叠标签

将标签控制在特定区域
通过设置参数xlim和ylim来限制label的位置

用ggrepel包画图标记不重叠标签
通过控制参数direction来决定label是左右移动还是上下移动, 默认是both

用ggrepel包画图标记不重叠标签

用ggrepel包画图标记不重叠标签

线图

用ggrepel包画图标记不重叠标签

SessionInfo

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: