2017-09-08 1 views
1

J'ai besoin d'aide pour ajouter la valeur p ajustée (bonferroni par exemple) sur la boîte à moustaches ggplot au lieu de la valeur p. J'ai essayé de le faire avec stat_compare_means du paquet ggpub en utilisant ..p.adj.. sur l'esthétique, mais cela ne fonctionne pas quand j'ajoute la liste de comparaison.ajouter la valeur p ajustée à ggplot avec comparaison

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

Répondre

0

Comment à ce sujet;

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

Je recommande également que vous regardez ce post on R-bloggers

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

Merci pour votre réponse mais la valeur p ajustée pour les comparaisons multiples n'est pas affiché lorsque j'ajoute la 'comparaison 'paramètre dans' stat_compare_means'. Je vais utiliser un autre exemple. données '("ToothGrowth")' 'my_comparisons <- liste (c ("0,5", "1"), c ("1", "2"), c ("0,5", "2")) 'ggboxplot (ToothGrowth, x =" dose ", y =" len ", couleur =" dose ", palette =" jco ") + stat_compare_means (aes (label = .. p.adj ..), comparaisons = my_comparisons) ' – zercchi

+0

@zercchi avez-vous vu le manuel d'aide de'? stat_compare_means'. Dans cela, l'option 'label' indique,' chaîne de caractères spécifiant le type d'étiquette. Les valeurs autorisées incluent "p.signif" (indique les niveaux de signification), "p.format" (affiche la valeur p formatée). Je pense que vous avez besoin de 'compare_means()' car il a l'option 'p.adj' Tu recherches. – Ashish

+0

@Ashish: comme vous l'avez souligné dans votre commentaire, votre réponse est fausse ["stat_compare_means (aes (label = .. p.adj ..) ..." n'est pas possible], donc veuillez le corriger sinon c'est déroutant. – Mattma