R ggplot2具有geom_点回避和不等子组数的回避箱线图

R ggplot2具有geom_点回避和不等子组数的回避箱线图,r,ggplot2,plot,jitter,x-axis,R,Ggplot2,Plot,Jitter,X Axis,我正试图绘制一个闪避箱线图,但我遇到了一些困难。首先,x轴基本上有两种类型的分组:“字母组”(A、B、C等)是主要的分组,我将它们指定为我的“x”美学(x_主_组)。在这个主组中,我有一个称为“X_组”的子组,框由这些子组类型着色。导致问题的原因是,对于每个字母组,我有不同数量的这些子组,例如,对于x=A,我有4个子组,但是对于x=B,我只有一个子组。这会导致问题,其中一个原因是,绘制点的回避不再起作用(请参见下面的示例图),因为它们与回避的箱线图不对齐。第二,框不再围绕x轴记号居中,这对于x=

我正试图绘制一个闪避箱线图,但我遇到了一些困难。首先,x轴基本上有两种类型的分组:“字母组”(A、B、C等)是主要的分组,我将它们指定为我的“x”美学(x_主_组)。在这个主组中,我有一个称为“X_组”的子组,框由这些子组类型着色。导致问题的原因是,对于每个字母组,我有不同数量的这些子组,例如,对于x=A,我有4个子组,但是对于x=B,我只有一个子组。这会导致问题,其中一个原因是,绘制点的回避不再起作用(请参见下面的示例图),因为它们与回避的箱线图不对齐。第二,框不再围绕x轴记号居中,这对于x=B是最清楚的。我如何解决这个问题

我还希望在每个子组下方实现小的x轴刻度(因此,x=A为4个刻度,x=B为1个刻度,x=C为3个刻度等等),但优先级较低。我附上了这个数字,我用红色画了一些我希望用记号实现的例子。ggplot2代码如下所示。我想提供一段可复制的代码,但我无法创建一段代码,该代码创建了一个具有不等数量子组的数据帧,以便希望提供帮助的人可以运行它。我只能制作“对称”数据帧


cbpallette如果您创建一个小的可复制示例以及预期的输出,那么会更容易提供帮助。阅读。我通常这样做,但我不知道如何制作一个简单的数据帧,每个主组中的子组数量不等。。。我是新手,抱歉。
cbpallette <- c("#999999", "#666666", "#333333", "#000000", "#003300")
p1 <- ggplot(data=df, aes(x=X_main_group,y=Intensity, colour=factor(X_group))) + stat_boxplot(geom = "errorbar", width=.4, position = position_dodge(0.5, preserve="single")) + geom_boxplot(width=0.5, outlier.shape=NA, position=position_dodge(preserve = "single")) + theme_classic() + geom_point(position=position_jitterdodge(), alpha=0.3)
p2 <- p1 + scale_colour_manual(values = cbpallette) + theme(legend.position = "none") + theme(axis.ticks.length = unit(-0.1, "cm"), axis.text.x = element_text(size=30, vjust=-0.4), axis.text.y=element_text(size=35, hjust = 0.5, angle=45), axis.title = element_blank()) 
p3 <- p2 + theme(axis.text.x = element_text(margin = margin(t = .5, unit = "cm")), axis.text.y = element_text(margin = margin(r = .5, unit = "cm")))
p3