跳到正文
0.16.6 文档

本页完整说明已译为现代汉语;函数、参数、代码和原始数据标识保留原样。 使用教程

全站目录 · 按任务查找

自动安排通用注释标签。

用法

代码
geom_feature_label_repel(
  mapping = NULL,
  data = NULL,
  label_layout = c("feature", "radial", "auto", "callout"),
  label_wrap = NULL,
  label_fit = c("wrap", "none", "ellipsis", "auto", "shrink"),
  label_max_lines = 2L,
  label_side = c("outside", "inside", "auto"),
  max_overlaps = Inf,
  external = TRUE,
  position = "identity",
  show.legend = FALSE,
  inherit.aes = FALSE,
  label_min_size = 1.5,
  label_segment_overlap = "fade",
  label_segment_overlap_alpha = 0.18,
  label_segment_linetype = "auto",
  ...
)

参数

mapping, data

标准图层输入;通过 label 映射注释文字。

label_layout

布局支持 "feature"、"radial"、"auto"、"callout"。默认 "feature" 遵循质粒图习惯:先尝试内部,再放到固定半径的内部轨道。所有非外部文字均按选定轨道半径逐字排布,而不是整体旋转成直线;注释与标签之间隔着一个或多个轨道时绘制浅色引导线。需要不受限制的外部引出标签时选择其他模式。

label_wrap, label_fit, label_max_lines

文字适配控制。显式 label_fit = "shrink" 优先尝试内部位置,不截断原文;字号下限由 label_min_size 决定。仍无法解决的标签保持请求字号,放在相邻/外侧或隐藏;其他模式维持已有行为。

label_side

支持 "inside"、"outside" 或 "auto"。

max_overlaps

允许尚未解决的最大重叠数。

external

内部和相邻位置都无法容纳后,是否允许放到圆形骨架外。FALSE 时隐藏无法解决的标签,不无限向内推。外部标签使用注释最终填色的浅色圆角框;与圆图酶切标签共存时,各自保留布局语义,但在坐标系共同管理的外部区域登记最终框,防止占用同一空间。

position

标签锚点使用的注释 Position。在 coord_collinear() 中,省略时共享匹配注释层的轨道;显式 Position 只改变标签锚点,不移动多边形。若两组输入均有唯一 feature_id,标签可取子集或重排,但序列标识、区间和链须一致。没有 ID 时,继承要求区间行及顺序完全相同。多个匹配几何层需要显式标签 Position 或无歧义注释 ID。

show.legend, inherit.aes

标准 ggplot2 图层参数。

label_min_size

显式缩小模式的最小字号,单位 mm,默认 1.5,不得超过请求字号。导出标签保留原文、请求/最终字号与适配原因。

label_segment_overlap

引导线被其他标签覆盖部分的绘制方式,默认 "fade"。"fade" 降低透明度,"clip" 删除覆盖部分,"show" 保留完整线。不会影响换行、省略或隐藏。

label_segment_overlap_alpha

[0, 1] 内的数值,默认 0.18;仅在 label_segment_overlap = "fade" 时控制被覆盖引导线部分的相对透明度。

label_segment_linetype

字符或数值,默认 "auto"。"auto" 通常用实线,移到弧线另一侧的标签用虚线;其他合法 ggplot2 线型(如 "solid"、"dashed"、"dotted" 或数字虚线模式)应用于全部引导线。

...

其他文字参数。

返回值

包含文字和引导线的复合图层。

详细说明

手动旋转、偏移、方向和碰撞策略属于 geom_feature_label();自动图层会拒绝相关 label_* 控制,而不是静默忽略。

示例

代码
library(dplyr)
data(plasmid_example_pUC19)
seqs <- plasmid_example_pUC19 |>
  select(accver, length)
feature_source <- find_common_features(plasmid_example_pUC19)
features <- feature_source |>
  select(accver, start, end, strand, type, anno)
# ASCII display copy for the default PDF help-example device.
features <- features |>
  mutate(anno = gsub("\u03b1", "alpha", anno, fixed = TRUE))
ggchord(seq_data = seqs) +
  geom_seq() +
  geom_feature(data = features, position = position_plasmid()) +
  geom_feature_label_repel(data = features, position = position_plasmid()) +
  coord_circular()