面用'free_y' - r Package stat_compare_means(),ggplot 2

hmae6n7t  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(97)

由于我正在使用的数据集的大小和复杂性,我没有简单的方法来创建一个可复制的示例,对此我表示歉意。
我正在使用stat_compare_means()将假设检验的结果添加到geom_boxplot()中,这在创建单个图时效果很好。使用以下代码:

p <- ggplot(smeaneps, aes(x=factor(Period,level=order), y=average,fill=Period)) +
  geom_boxplot() + 
  geom_jitter(color="black", size=0.8, alpha=0.4) +
  scale_fill_brewer(palette="Set1",breaks=order) +
  ggtitle("Average Episode Count - Pre and Post Pandemic Lockdown") +
  ylab("Average Episode Count") + xlab("Period") +
  theme_apa() 

p + stat_compare_means(comparisons = list(c("Pre","Post")),method = "t.test") + 
    stat_compare_means( aes(label = ..p.signif..), 
                        label.x = 1.5, label.y = 0.98,method = "t.test") +
  theme(legend.position = "none")

字符串
我遇到的问题是使用facet_wrap()梳理图表,每个图表都有不同的比例,所以label = ..p.signif..到处都是。见下文:

bp <- ggplot(sbehs, aes(x=factor(Period, level=order), y=average, fill=Period)) + 
  geom_boxplot(aes(fill=Target)) +
  ggtitle("Average Episode Count - Individual Behaviors") +
  ylab("Average Episode Count") + xlab("Period") +
  theme_apa()
# Split in horizontal direction
bp + stat_compare_means(comparisons = list(c("Pre","Post")),method = "t.test") + 
    stat_compare_means( aes(label = ..p.signif..), 
                        label.x = 1.5, label.y = 0.75,method = "t.test") +
  theme(legend.position = "none") +
  facet_wrap(. ~ Target,scales='free',ncol=2)


的数据
是否有一个类似循环的方法,允许我为每个方面输入单独的label.y?类似于:

for i in c(0.75,1.1,0.75,4.5){
bp + stat_compare_means(comparisons = list(c("Pre","Post")),method = "t.test") + 
    stat_compare_means( aes(label = ..p.signif..), 
                        label.x = 1.5, label.y = i,method = "t.test") +
  theme(legend.position = "none") +
  facet_wrap(. ~ Target,scales='free',ncol=2) 
}


或者简单一点的东西,这只是为了让概念清楚。对于加分,你能不能告诉我为什么p值在顶部剪切……:/

9jyewag0

9jyewag01#

我找到了一个解决方案,而不是试图设置每个单独label.y的高度,你只需要使用vjust属性来调整标签的位置。
请注意以下代码片段中的vjust = 1

p + stat_compare_means( aes(label = ..p.signif..), 
                        label.x = 1.5, vjust = 1, method = "t.test") +
  theme(legend.position = "none")

字符串

相关问题