在 ggplot2 的轴上添加虚拟值以添加刻度之间的不对称距离

Adding dummy values on axis in ggplot2 to add asymmetric distance between ticks

如何在 ggplot2 中的 x 轴上添加虚拟值

我有 0,2,4,6,12,14,18,22,26 数据,我已经绘制在 x 轴上。 table中没有数据的剩余偶数有没有办法相加?这将在 x 轴上创建适当的空间。

在 activity 之后,x 轴应显示 0,2,4,6,8,10,12,14,16,18,20,22,24,26

我已经尝试使用 rbind.fill 来添加虚拟数据,但是当我让它们成为最后一个出现的 8、10、12 等因素时

谢谢

enter image description here

希望这是有道理的:

library(ggplot2)

gvals <- factor(letters[1:3])
xvals <- factor(c(0,2,4,6,12,14,18,22,26), levels = seq(0, 26, by = 2))
yvals <- rnorm(10000, mean = 2)

df <- data.frame(x = sample(xvals, size = length(yvals), replace = TRUE),
                 y = yvals,
                 group = sample(gvals, size = length(yvals), replace = TRUE))

ggplot(df, aes(x = x, y = y)) + geom_boxplot(aes(fill = group)) +
    scale_x_discrete(drop = FALSE)

诀窍是使 x 变量具有您需要的所有级别,并指定 drop = FALSE 比例。