0

我正在尝试绘制一个躲避的箱线图,但遇到了一些困难。首先,x 轴基本上有 2 种类型的分组:“字母组”(A、B、C 等)是主要组,我将这些指定为我的“X”美学(X_main_group)。在这个主要组中,我有称为“X_group”的子组,这些框由这些子组类型着色。导致问题的原因是对于每个字母组我有不同数量的这些子组,例如对于 x=AI 有 4 个子组但对于 x=BI 只有一个。这会导致问题,因为其中一个绘图点的闪避不再起作用(请参见下面的示例图),因为它们与闪避的箱线图不对齐。其次,框不再以 x 轴刻度为中心,这对于 x=B 最为清楚。我怎样才能解决这个问题?

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

示例图

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
4

0 回答 0