Поиск точек вылета из matplotlib: boxplot

116
8

Я рисую ненормальное распределение, используя boxplot, и заинтересован в том, чтобы узнать о выбросах, используя функцию boxplot matplotlib.


Помимо сюжета, мне интересно узнать значение точек в моем коде, которые показаны как выбросы в boxplot. Есть ли способ извлечь эти значения для использования в моем нисходящем коде из объекта boxplot?

спросил(а) 2021-01-25T15:57:04+03:00 4 месяца, 3 недели назад
1
Решение
159

Вы имеете в виду те точки выше и ниже двух черных линий?


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

Сохраните возвращаемый dict из boxplot, и вы можете получить всю информацию из него, например:


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

ответил(а) 2021-01-25T15:57:04+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема