由于我正在使用的数据集的大小和复杂性,我没有简单的方法来创建一个可复制的示例,对此我表示歉意。
我正在使用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值在顶部剪切……:/
1条答案
按热度按时间9jyewag01#
我找到了一个解决方案,而不是试图设置每个单独
label.y
的高度,你只需要使用vjust
属性来调整标签的位置。请注意以下代码片段中的
vjust = 1
:字符串