geom_label_repel 文本对齐和对齐

Djo*_*ork 5 r ggplot2 ggrepel

在下面的示例中,是否有可能的解决方法来左对齐由geom_label_repel(或geom_text_repel)创建的文本标签,其中所有文本都以正值放置,nudge_x并且仅在direction参数中调整了 y 位置?目前,默认行为是居中对齐文本:

library(ggplot2)
library(ggrepel)

ggplot(mtcars, aes(x=factor(gear), y=mpg, colour=factor(gear))) + 
  geom_point(size=3) + 
  facet_wrap(~cyl, labeller=label_both) + 
  scale_x_discrete(expand=c(0, 1.5)) + 
  geom_label_repel(aes(label=rownames(mtcars)), 
               size=3, segment.size=0.25, nudge_x=0.5, direction="y")
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我希望通过如下例所示的设置来模拟geom_label(或geom_text) 中可能的左对齐hjust=0,同时能够在 y 方向自动排斥标签:

ggplot(mtcars, aes(x=factor(gear), y=mpg, colour=factor(gear))) + 
  geom_point(size=3) + 
  facet_wrap(~cyl, labeller=label_both) +
  scale_x_discrete(expand=c(0, 1.5)) + 
  geom_label(aes(label=rownames(mtcars)), size=3, nudge_x=0.2, hjust=0)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

编辑:作为一个黑客,是否有可能将 hjust(和 vjust)构建到 ggrepel 中?

che*_*123 3

自从OP发布这个问题以来的4年里,hjust=似乎已经被添加到ggrepel包中:

library(ggplot2)
library(ggrepel)

ggplot(mtcars, aes(x=factor(gear), y=mpg, colour=factor(gear))) + 
  geom_point(size=3) + 
  facet_wrap(~cyl, labeller=label_both) + 
  scale_x_discrete(expand=c(0, 1.5)) + 
  geom_label_repel(
    aes(label=rownames(mtcars)), hjust=0,
    size=3, segment.size=0.25, nudge_x=0.5, direction="y")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述