【问题标题】:How do I use ggrepepl to avoid all geoms?如何使用 ggrepepl 来避免所有几何?
【发布时间】:2018-12-06 12:12:26
【问题描述】:

我正在尝试使用 ggrepel 为我正在使用 R 和 ggplot2 处理的图表创建文本标签。我发现它对于排斥单个点非常有用,但我经常遇到它与其他一些绘图对象重叠的问题。

我正在尝试像这样将它添加到情节中:

plot + ggrepel::geom_text_repel(aes(y = Ratio, label = Ratio), direction = "y")

有什么方法可以告诉 ggrepel 避开 ggplot 上的所有内容吗?我已经尝试过搜索并为此提出一些建议,但我被困住了。

希望我的问题足够清楚,谢谢。

【问题讨论】:

  • vignette 提供了一些将标签约束到区域或在边缘上对齐的示例。也许这将允许您将文本(可选用箭头)从线条上移开。否则,我相信ggrepel 主要(仅?)用于防止与其特定数据点和其他文本/标签重叠,而不是图中的其他几何图形。
  • 不过,另一种选择是将空字符串分配给其他几何图形。在小插图中,查看“隐藏一些标签”,并考虑创建一个包含所有(相关)点和空标签的框架。如果您提供示例数据(对于真正的reproducible question),我也许可以在这里说明我的意思。

标签: r ggplot2 data-visualization ggrepel control-charts


【解决方案1】:

ggrepel 不允许避开所有几何图形。

在您的情况下,作为一种解决方法,您可以使用 nudge_y = 0.1 in 将所有标签上移。 通常,在这种情况下,您会需要更多的标签空间。这可以通过例如实现+ scale_y_continous(expand = scales::expansion(mult = c(0.05, 0.2)))

ggrepel 不会标记,但会排斥带有空 ("") 标签的点。所以一般来说,作为一种解决方法,您可以尝试生成覆盖其他几何图形的数据,并在您的 geom_text_repel 调用中包含带有空标签的数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    • 2011-11-02
    • 2017-07-09
    • 2015-05-21
    相关资源
    最近更新 更多