ggplot 自定义 x 轴(月)被压缩/不使用整个范围

ggplot custom x-axis (Month) is compressed / not using whole range

我正在尝试根据时间序列数据创建箱线图。问题是数据的宽度似乎是 "compressed",没有覆盖它应该覆盖的范围。我的 x 轴是观察月份,但按照自定义顺序(11 月到 3 月)。该地块仅涵盖 12 月至 2 月,但我肯定对 11 月和 3 月有观察。

level_order <- c('November', 'December', 'January', 'February', 'March')
plot <- ggplot(data = df, aes(y = y, x = factor(Month,level = level_order), group=DAP)) +
geom_boxplot(fill="grey85", width = 2.0) +
scale_x_discrete(limits = level_order)
plot

结果:X 轴范围正确,所有条目都在那里 - 但宽度以某种方式压缩了......

这里是数据集的样本

> df
    DAP Date       Month    y
1    47 2010-11-26 November 0.6872708
16   99 2011-01-17  January 0.7929280
31  151 2011-03-10    March 0.6915378
46   85 2012-01-03  January 0.7346495
61  137 2012-02-24 February 0.7178306
76   75 2012-12-24 December 0.7287693
91  127 2013-02-14 February 0.7282626

你的问题是我不认为 width 论点符合你的想法。考虑没有 width 参数会发生什么:

plot <- ggplot(data = df, aes(y = y, x = Month, group = DAP)) +
    geom_boxplot(fill = "grey85") +
    scale_x_discrete(limits = level_order)
plot

这就是我想你想要的。