此问题之前以不同的形式提出,指的是连续变量,而非离散变量。因此,我认为一个新问题是合理的。
我有一个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轴上。我如何实现这一目标?
答案 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