I R ggplot2 , 'vjust' and 'nudge_y' can adjust text position for vertical axis .任何人都可以说出这两个参数的区别

I R ggplot2 , 'vjust' and 'nudge_y' can adjust text position for vertical axis . Anyone can tell the difference of the two parameters

I R ggplot2 , 'vjust' and 'nudge_y' can adjust text position for vertical axis .谁能说出这两个参数的区别?谢谢

library(tidyverse)
plot_data <- data.frame(cagegory=LETTERS[1:5],amount=c(1:5))
plot_data %>% ggplot(aes(x=cagegory,y=amount))+geom_bar(stat='identity')+
   geom_text(size=10,vjust=1,color='white',aes(label=cagegory))+
   geom_text(size=10,nudge_y=1,color='red',aes(label=cagegory))+
   theme_minimal()

vjust 参数根据字符串高度指定与文本方向正交的对齐方式。它通常被误解为 'vertical' 对齐,但这仅在文本的角度为 0 时才是正确的。请注意,在您的示例中,白色文本正好从栏顶部下方的 1 stringheight 处开始。如果您设置 vjust = 2,它将在栏顶部下方开始 2 个字符串高度。

当你有一个多行标签时,从 stringheight 的角度看它可能更容易:

library(tidyverse)
#> Warning: package 'readr' was built under R version 4.1.1
plot_data <- data.frame(category=LETTERS[1:5],amount=c(1:5))

p <- ggplot(plot_data, aes(x = category, y = amount)) +
  geom_col() +
  theme_minimal()

p + geom_text(size = 10 , vjust = 1, colour = "white",
              aes(label = paste0(category, "\n", category)))

nudge_y 参数为您提供移动文本的 y 轴单位数。请注意,示例中的红色文本居中于栏上方 1 个单位(居中是因为默认 vjust = 0.5)。

p + geom_text(size = 10, nudge_y = 1, color = "red",
              aes(label = category))

reprex package (v2.0.1)

于 2021-09-07 创建

同样,hjust 参数根据字符串宽度指定文本方向的对齐方式,nudge_x 是沿 x 轴的偏移。