提问人:Saud Lingawi 提问时间:7/12/2023 最后编辑:MarkSaud Lingawi 更新时间:9/1/2023 访问量:427
在 R 中隐藏 NS 显著性和括号,使用 geom_pwc、stat_pvalue_manual 或 stat_compare_means
Hiding NS significance and brackets in R, using geom_pwc, stat_pvalue_manual, or stat_compare_means
问:
我面临 、 和 的问题。问题如下:stat_compare_means
geom_pwc
stat_pvalue_manual
stat_compare_means
实际上在大多数情况下工作得不错,除了我似乎无法摆脱 NS 重要性的括号。 只去掉了标签本身,而不是去掉了括号,我似乎不能让这些括号不出现。hide.ns
对于两者 和 ,我读到这也隐藏了括号。但是,当我将这些函数中的任何一个与 一起使用时,我的所有意义都被删除了(尽管并非所有意义都是 ns)。
geom_pwc
stat_pvalue_manual
hide.ns
hide.ns=TRUE
我的数据是一个包含三个相关变量的 df:意愿(y 轴)、性别(x 轴)和风险(方面)。我的图是一个箱线图。有三个方面(风险:0.1%、2% 和 10%),四个性别类别(男性、女性、非二元性别和一般),意愿是一个连续的 0-100 量表。“一般”性别只是其他三个性别类别的综合数据,以观察非性别特异性的总体趋势,应排除在统计比较之外。
我的代码如下:
ggboxplot(combined_data,x = "gender", y = "willingness", color = "black", fill="gender", palette = c("coral4","#BBD1EA","#FFBB99","#FFF6BD"), facet.by = "Risk", short.panel.labs = FALSE, outlier.shape = NA) +
geom_point(aes(x=gender,y=willingness,fill=gender),position=position_jitterdodge(),alpha=0.3,size=1,shape=20) +
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)) +
theme(legend.position="none", axis.text.x=element_blank(),axis.ticks.x=element_blank(),axis.title.x = element_blank()) +
stat_compare_means(comparisons = my_comparisons, label="p.signif", hide.ns = TRUE)
其中,在 中,“my_comparisons”为:stat_compare_means
my_comparisons <- list(c("Men", "Women"), c("Men", "Non-binary"), c("Women", "Non-binary"))
这将生成下面附加的第一张图像。
当我尝试使用 或 时,它们都会产生相同的数字。注意:这个似乎不允许我指定比较,所以这里包括“一般”。如果有人知道如何指定比较,那就太好了。代码为:geom_pwc
stat_pvalue_manual
ggboxplot(combined_data,x = "gender", y = "willingness", color = "black", fill="gender", palette = c("coral4","#BBD1EA","#FFBB99","#FFF6BD"), facet.by = "Risk", short.panel.labs = FALSE, outlier.shape = NA) +
geom_point(aes(x=gender,y=willingness,fill=gender),position=position_jitterdodge(),alpha=0.3,size=1,shape=20) +
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)) +
theme(legend.position="none", axis.text.x=element_blank(),axis.ticks.x=element_blank(),axis.title.x = element_blank()) +
geom_pwc(group.by="x.var",label="p.signif",hide.ns=TRUE)
下图如下图所示。
这就是它的样子,注意当前的重要性水平:hide.ns=false
使用 会产生与 相同的结果,请注意以下代码:stat_pvalue_manual
geom_pwc
stat.test <- compare_means(willingness ~ gender, data = combined_data,
group.by = "Risk")
ggboxplot(.......same as above) +
stat_pvalue_manual(stat.test, label = "p.signif", hide.ns = TRUE)
因此,如果有人可以提供帮助:
- 删除带 stat_compare_means 的 ns 括号,或者
- 指定比较并使用 或 修复问题
hide.ns
geom_pwc
stat_pvalue_manual
我将不胜感激。谢谢!
答:
您可以在绘图之前自动计算 p 值,并据此决定比较。就我而言stat_compare_means usus wilcoxin,所以我使用seurat findMarkers,它很快,也含有wilcoxin。就像我的例子一样:
comparisonsi <- list(c("AL", "DR"), c("AL", "SR100"))
pval_AL_vs_DR <- FindMarkers(sne_subset, ident.1 = "AL", ident.2 = "DR", features = c(gene), min.pct = 0, logfc.threshold = 0)[gene, "p_val"]
pval_AL_vs_SR100 <- FindMarkers(sne_subset, ident.1 = "AL", ident.2 = "SR100", features = c(gene), min.pct = 0, logfc.threshold = 0)[gene, "p_val"]
if (pval_AL_vs_DR<=0.05 & pval_AL_vs_SR100<=0.05) {comparisonsi <- list(c("AL", "DR"), c("AL", "SR100"))}
if (pval_AL_vs_DR<=0.05 & pval_AL_vs_SR100>0.05) {comparisonsi <- list(c("AL", "DR"))}
if (pval_AL_vs_DR>0.05 & pval_AL_vs_SR100<=0.05) {comparisonsi <- list(c("AL", "SR100"))}
if (pval_AL_vs_DR>0.05 & pval_AL_vs_SR100>0.05) {comparisonsi <- list()}
p_violin <- VlnPlot(sne_subset, features = gene, group.by = "diet", pt.size = 0, log = T) +
stat_compare_means(comparisons = comparisonsi, method = "wilcox.test", label = "p.signif", hide.ns = T)
评论
ggpubr::ggboxplot
ggplot::geom_boxplot