将X轴标签与X轴第一个刻度文本左对齐

3

考虑以下示例:

library(ggplot2)
dat <- data.frame(number = c(5, 10, 11 ,12,12,12,13,15,15))
ggplot(dat, aes(x = number)) + geom_histogram()

如何将X轴标签左对齐,以便与X轴第一个刻度的文本对齐?
结果应该如下图所示: enter image description here 我正在寻找一种可以轻松推广到其他绘图的解决方案。

1
你需要比 theme(axis.title.x = element_text(hjust = 0)) 更具体的东西吗? - camille
是的,如果您测试您的解决方案,就会清楚地看到X轴标签与第一个刻度线的文本不对齐,但它将与X轴原点对齐。 - Seymour
1个回答

6

创建绘图对象后,我们可以获取第一个刻度标签的位置。

p <- ggplot(dat, aes(x = number)) + 
                      geom_histogram()

i1 <- ggplot_build(p)$layout$panel_ranges[[1]]$x.major[1]
#or
library(magrittr)
i1 <-  p %>% 
          ggplot_build %>% 
          extract2("layout") %>%
          extract2("panel_ranges") %>%
          extract2(1) %>% 
          extract2("x.major") %>%
          extract(1)

然后在theme中使用它。更好的方法是查看并根据需要进行调整。

p + 
   theme(axis.title.x = element_text(hjust = i1- 0.01))

enter image description here


4
我不知道你的秘密是什么,但你总是有我问题的答案。从现在开始,我将称呼你为“神谕”。 - Seymour

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接