在下面的示例中,是否有可能的解决方法来左对齐由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 中?
自从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)