1 pièce(s) jointe(s)
Calculer et afficher des valeurs sur un boxplot ggplot
Bonjour,
Je souhaite afficher des valeurs sur mon boxplot mais je ne comprend pas pourquoi le résultat du calcul est faux :
Mon dataframe "DFacte" comporte :
-une colonne "Num_etablissement" qui est le numéro d'un établissement : 1;2;3;4;...
-une colonne "Type_etablissement" qui est une variable catégorielle : "CHU"; "CH"; "Privé"...
-une colonne "PDS" qui est une variable numérique continue
Ce qui donne ça par exemple:
Code:
1 2 3 4 5 6
|
Num_etablissement <- rep ( c(1,2,3),3)
Type_etablissement <- rep ( c("CH","CHU","CH"),3)
PDS <-rnorm(9, mean=5, sd= 1.2)
DFacte <- data.frame(Num_etablissement,Type_etablissement,PDS) |
Je défini ma fonction qui permet d'inscrire le nombre de valeurs utilisé sous chaque boxplot (cette fonction fonctionne parfaitement :
Code:
1 2 3
|
n_fun <- function(x) {
return(data.frame (y=-5, label=paste0("n=",length(x)))) } |
Je défini ma deuxième fonction qui doit me permettre d'écrire le nombre d'établissement différent utilisé sous chaque boxplot (c'est là que ça ne marche pas, ça me donne 0 pour tous les résultats - je ne vois pas où est mon erreur) :
Code:
1 2 3
|
n_fun2 <- function(x) {
return(data.frame (y=-10, label=paste0("centres=", length(unique(DFacte$Num_etablissement[DFacte$Type_etablissement=="x"] )) ))) } |
Je créé mon boxplot :
Code:
1 2 3 4 5 6
|
ggplot(DFacte) +
aes(x=Type_etablissement,y=PDS)+
geom_boxplot(alpha=0.7)+
stat_summary(fun.data=n_fun, geom="text")+
stat_summary(fun.data=n_fun2, geom="text") |
qui me donne centres = 0 pour mes 2 boxplot au lieu de centres=2 pour le CH et centres=1 pour le CHU:
Pièce jointe 519786