2017-09-08 140 views
1

我需要幫助添加調整後的p值(例如bonferroni)在ggplot boxplot而不是p值。我試圖用ggpub軟件包中的stat_compare_means做到這一點,在美學上使用..p.adj..,但是當我添加比較列表時,它不起作用。添加調整後的p值ggplot比較

ggplot(data= mydf, aes(x=B,y=A)) + 
    geom_boxplot() + 
    stat_compare_means(aes(label=..p.adj..), 
        comparisons = list(c("x","y"),c("x","z"),c("y","z"))) 

boxplot

回答

0

這個怎麼樣;

library(ggplot2) 
library(ggpubr) 
mydf <- data.frame(A=1:300, B=rep(c("x","y","z"),100)) 
my_comparisons<- list(c("x","y"),c("x","z"),c("y","z")) 

p<- ggplot(data= mydf, aes(x=B,y=A)) + geom_boxplot() + 
    theme_bw()+ 
    stat_compare_means(aes(label=..p.adj..), comparisons = my_comparisons, 
        label.x = 1.5, label.y = 300) 
# Add p-value 
p + stat_compare_means(label.y = 280, label.x = 1.2) 

plot1

# Change method 
p + stat_compare_means(method = "anova", label.y = 260, label.x = 2.2) 

plot2

我也建議你看看這個post on R-bloggers

[1]: https://i.stack.imgur.com/6UGw4.png 
[2]: https://i.stack.imgur.com/oriH8.png 
+0

謝謝您的回答 但多重比較校正P值不當我添加「比較」時顯示'stat_compare_means'中的''參數。我會用另一個例子。 (「0.5」,「2」),c(「0.5」,「2」),c(「0.5」,「2」 ))' 'ggboxplot(ToothGrowth,x =「dose」,y =「len」,color =「dose」,palette =「jco」)+ stat_compare_means(aes(label = .. p.adj ..),comparisons = my_comparisons)' – zercchi

+0

@zercchi你見過'?stat_compare_means'的幫助手冊。在它的'label'選項中,指定了'指定標籤類型的字符串。允許的值包括「p.signif」(顯示重要性級別),「p.format」(顯示格式化的p值)。我認爲,您需要'compare_means()'因爲它有'p.adj'選項你正在尋找。 – Ashish

+0

@Ashish:正如你在評論中指出的那樣,你的回答是錯誤的[「stat_compare_means(aes(label = .. p.adj ..)...」是不可能的],所以請糾正它,否則會令人困惑。 – Mattma