考虑以下示例,
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轴上第一个刻度的文本对齐?
结果应如下所示:
我正在寻找一种可以轻松推广到其他地块的解决方案。
最佳答案
创建图对象后,我们可以获取第一个刻度标签的位置
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))