从ggplot2中x轴最左侧开始的离散x轴标签

时间:2016-02-23 15:21:36

标签: r ggplot2

此问题之前以不同的形式提出,指的是连续变量,而非离散变量。因此,我认为一个新问题是合理的。

我有一个ggplot折线图,其中x轴为时间点,y轴为Score。

Dose <- rep(c("Time1", "Time2", "Time3", "Time4", "Time5"), 4)
ID <- rep(1:4, each = 5)
set.seed(123)
Score <- rnorm(20, 10, 3)
df <- data.frame(ID, Dose, Score)

p <- ggplot(df, aes(df$Dose, df$Score, group = df$ID, colour = df$ID)) + geom_smooth(method = lm, se = FALSE) + stat_smooth(aes(group = 1), se = FALSE, colour = "red", size = 1)

p

我希望第一个x轴标签/刻度出现在x轴和y轴的连接处。我希望这是因为我希望OLS拦截能够真正拦截y轴。因此,在这种情况下,时间1将出现在0和x轴上。我如何实现这一目标?

1 个答案:

答案 0 :(得分:3)

如果您执行scale_x_discrete(expand = c(0, 0)),您将在时间上切断标签5.使用scale_x_discrete(expand = c(0, 0.05))为自己留出一点空间我还会重新格式化您的代码以进行清理。

p <-ggplot(df, aes(Dose, Score, group = ID, colour = ID)) + 
  geom_smooth(method = lm, se = FALSE) + 
  stat_smooth(aes(group = 1), se = FALSE, colour = "red", size = 1) +
  theme(
    legend.position = 'none'
  ) +
  scale_x_discrete(expand = c(0,.05))

p