使用 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)
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)