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
这就是我想你想要的。
我正在尝试根据时间序列数据创建箱线图。问题是数据的宽度似乎是 "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
这就是我想你想要的。