使用 ggplot2 左对齐 geom_text 图层

Left-justify geom_text layer with ggplot2

ggplot2 自动将文本居中放置在 geom_text 图层中。例如:

library(ggplot2)
library(tidyverse)
df <- data_frame(text = c("A short sentence.",
                      "A slightly longer sentence.",
                      "This sentence is the longest of the sentences."),
             y = row_number(text) - 1,
             x = 1)

ggplot(df, aes(x = x, y = y)) +
  geom_text(aes(label = text), nudge_x = nchar(text)/2)

产生:

ggplot:

但是,我想在一个整齐的列中左对齐文本。我本质上是在问如何向 text 提供 xmin。我是否需要对 x 变量执行相应缩放 x 的数学运算?或者 theme 有技巧吗?

您可以使用 hjust:

ggplot(df, aes(x = x, y = y)) +
  geom_text(aes(label = text), hjust = 0)

您还可以添加一个 xlim 以将列对齐到绘图的最左侧:

ggplot(df, aes(x = x, y = y)) +
  geom_text(aes(label = text), hjust = 0)  + xlim(1, 1.5)