200 votes

Ignorer les valeurs aberrantes dans les boxplot ggplot2

Comment ignorer les valeurs aberrantes dans un graphique ggplot2 ? Je ne veux pas simplement qu'elles disparaissent (c'est-à-dire outlier.size=0), mais je veux qu'elles soient ignorées de façon à ce que l'axe des y affiche le 1er/3ème percentile. Mes valeurs aberrantes font que la "boîte" se rétrécit tellement qu'il s'agit pratiquement d'une ligne. Existe-t-il des techniques pour résoudre ce problème ?

Editer En voici un exemple :

y = c(.01, .02, .03, .04, .05, .06, .07, .08, .09, .5, -.6)
qplot(1, y, geom="boxplot")

enter image description here

6voto

IggyM Points 56

Si vous souhaitez forcer les moustaches à s'étendre jusqu'aux valeurs maximales et minimales, vous pouvez modifier le paramètre coef argument. La valeur par défaut de coef est de 1,5 (c'est-à-dire que la longueur par défaut des moustaches est 1,5 fois l'IQR).

# Load package and create a dummy data frame with outliers 
#(using example from Ramnath's answer above)
library(ggplot2)
df = data.frame(y = c(-100, rnorm(100), 100))

# create boxplot that includes outliers
p0 = ggplot(df, aes(y = y)) + geom_boxplot(aes(x = factor(1)))

# create boxplot where whiskers extend to max and min values
p1 = ggplot(df, aes(y = y)) + geom_boxplot(aes(x = factor(1)), coef = 500)

image of p0

image of p1

0voto

Simple, sale et efficace. geom_boxplot(outlier.alpha = 0)

-2voto

eckart Points 33

L'option "coef" de la fonction geom_boxplot permet de modifier le seuil des valeurs aberrantes en termes d'intervalles interquartiles. Cette option est documentée pour la fonction stat_boxplot. Pour désactiver les valeurs aberrantes (en d'autres termes, elles sont traitées comme des données normales), il est possible de spécifier une valeur seuil très élevée au lieu d'utiliser la valeur par défaut de 1,5 :

library(ggplot2)
# generate data with outliers:
df = data.frame(x=1, y = c(-10, rnorm(100), 10)) 
# generate plot with increased cutoff for outliers:
ggplot(df, aes(x, y)) + geom_boxplot(coef=1e30)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X