2012-04-19 1 views
6

Je suis en train de tracer une distribution non-normale en utilisant la boîte à moustaches et je suis intéressé à en savoir plus sur les valeurs aberrantes en utilisant la fonction boxplot de matplotlib. Outre l'intrigue, je suis intéressé à trouver la valeur des points dans mon code qui sont indiqués comme des valeurs aberrantes dans le boxplot. Est-il possible que je puisse extraire ces valeurs à utiliser dans mon code en aval à partir de l'objet boxplot?Trouver les points aberrants de matplotlib: boxplot

Répondre

12

Voulez-vous dire ces points au-dessus et au-dessous des deux lignes noires?

from pylab import * 
spread= rand(50) * 100 
center = ones(25) * 50 
flier_high = rand(10) * 100 + 100 
flier_low = rand(10) * -100 
data =concatenate((spread, center, flier_high, flier_low), 0) 
r = boxplot(data) 

enter image description here

magasin le dict retour de boxplot, et vous pouvez obtenir toutes les informations de, par exemple:

top_points = r["fliers"][0].get_data()[1] 
bottom_points = r["fliers"][2].get_data()[1] 
plot(np.ones(len(top_points)), top_points, "+") 
plot(np.ones(len(bottom_points)), bottom_points, "+") 

enter image description here

Questions connexes