J'utilise la trame de données suivantes:Comment ajouter des barres de comparaison à une parcelle pour indiquer quelle valeur de comparaison ap correspond à
df1 <- structure(list(Genotype = structure(c(1L, 1L, 1L, 1L, 1L,
2L,2L,2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L,
1L,1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L),
.Label= c("miR-15/16 FL", "miR-15/16 cKO"), class = "factor"),
Tissue = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L), .Label = c("iLN", "Spleen", "Skin", "Colon"), class = "factor"),
`Cells/SC/Live/CD8—,, CD4+/Foxp3+,Median,<BV421-A>,CD127` = c(518L,
715L, 572L, 599L, 614L, 881L, 743L, 722L, 779L, 843L, 494L,
610L, 613L, 624L, 631L, 925L, 880L, 932L, 876L, 926L, 1786L,
2079L, 2199L, 2345L, 2360L, 2408L, 2509L, 3129L, 3263L, 3714L,
917L, NA, 1066L, 1059L, 939L, 1269L, 1047L, 974L, 1048L,
1084L)),
.Names = c("Genotype", "Tissue", "Cells/SC/Live/CD8—,,CD4+/Foxp3+,Median,<BV421-A>,CD127"),
row.names = c(NA, -40L), class = c("tbl_df", "tbl", "data.frame"))
et essayer de faire un terrain à l'aide ggplot2 où des parcelles de boîte et les points sont affichés regroupés par "Tissue" et entrelacés par "Genotype". Les valeurs de signification s'affichent correctement, mais j'aimerais ajouter des lignes pour indiquer les comparaisons effectuées et les faire commencer au centre de chaque boîte à lettres "miR-15/16 FL" et se terminer au centre de chaque "miR-15/16 cKO "boîte plot et assis directement en dessous des valeurs de signification. Ci-dessous le code que je utilise pour générer le terrain:
library(ggplot2)
library(ggpubr)
color.groups <- c("black","red")
names(color.groups) <- unique(df1$Genotype)
shape.groups <- c(16, 1)
names(shape.groups) <- unique(df1$Genotype)
ggplot(df1, aes(x = Tissue, y = df1[3], color = Genotype, shape = Genotype)) +
geom_boxplot(position = position_dodge(), outlier.shape = NA) +
geom_point(position=position_dodge(width=0.75)) +
ylim(0,1.2*max(df1[3], na.rm = TRUE)) +
ylab('MFI CD127 (of CD4+ Foxp3+ T cells') +
scale_color_manual(values=color.groups) +
scale_shape_manual(values=shape.groups) +
theme_bw() + theme(panel.border = element_blank(), panel.grid.major = element_blank(),
panel.grid.minor = element_blank(), axis.line = element_line(colour = "black"),
axis.title.x=element_blank(), aspect.ratio = 1,
text = element_text(size = 9)) +
stat_compare_means(show.legend = FALSE, label = 'p.format', method = 't.test',
label.y = c(0.1*max(df1[3], na.rm = TRUE) + max(df1[3][c(1:10),], na.rm = TRUE),
0.1*max(df1[3], na.rm = TRUE) + max(df1[3][c(11:20),], na.rm = TRUE),
0.1*max(df1[3], na.rm = TRUE) + max(df1[3][c(21:30),], na.rm = TRUE),
0.1*max(df1[3], na.rm = TRUE) + max(df1[3][c(31:40),], na.rm = TRUE)))
Merci pour toute aide!
Cool! Oui ça marche plutôt bien. Il serait préférable que les extrémités des supports soient alignées avec le centre des boîtes à moustaches ...probablement juste besoin d'ajuster la valeur 0,45 ... Où avez-vous obtenu la valeur de 0,45? J'avais espéré un moyen de le faire avec ggpubr qui lui permettrait d'être plus accommodant à l'ajout de tissus supplémentaires ou d'enlever des tissus de l'intrigue. Ils ont un appel "comparisons =" que vous pouvez passer une liste de comparaisons à mais je ne pouvais pas comprendre comment l'utiliser. –
Les catégories x sont positionnées numériquement aux valeurs x 1 à n, où n = 4 dans ce cas. Ainsi, +/- 0,45 laissera un peu d'espace entre les parenthèses pour les groupes adjacents (comme vous pouvez le voir dans les deux premiers groupes de la placette, car ils ont des positions y similaires). J'ai mis à jour le code en ajoutant un paramètre 'w' pour définir la largeur du support. Cette méthode s'ajuste automatiquement pour différents nombres de x-catégories, puisque 'w' est toujours ajouté/soustrait de n'importe quel nombre de x-catégories que l'intrigue se trouve avoir. – eipi10