Почему boxplot от matplotlib 1.4.0 отличается от boxplot от matplotlib 2.2.0 для тех же данных? - PullRequest
0 голосов
/ 19 мая 2018

Я использовал следующий код для построения диаграммы с 5-м и 95-м процентилями в качестве верхней и нижней границ.Удивительно, но я получил два разных графика, используя matplotlib 1.4.0 в python 2.7.3 и matplotlib 2.2.0 в python 3.6.5.Версия 1.4.0, кажется, показывает максимальное значение (49,33), а версия 2.2.0 показывает значение около 25 как 95-й процентиль, тогда как фактический 95-й процентиль - 36,13.Что может быть возможной причиной этих различий?И какой из них следует считать правильным?

import numpy as np
import matplotlib.pyplot as plt

values = np.array([0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,49.33,0.00,0.00,25.33])

f, (ax1) = plt.subplots()
ax1.boxplot(values, whis=[5.0,95.0], showfliers=False)
plt.show()

Boxplot using matplotlib 1.4.0 in python 2.7.3

Boxplot using matplotlib 2.2.0 in python 3.6.5

1 Ответ

0 голосов
/ 20 мая 2018

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

В текущей версии matplotlib определение позиции вискера состоит в том, что она показывает самое высокое значение в диапазоне, определенном параметром whis.
Здесь вы используете whis=[5.0,95.0] и 95-процентильбудет ~36.Наибольшее значение ниже или равное 36 равно 25.33;следовательно, усы показаны при этом значении.

Я не знаю определения, использованного в первоначальной версии boxplot в matplotlib 1.4, но я мог бы представить, что это самое низкое значение вне диапазона процентилей, заданного для whis;следовательно, это будет показано на 49.33.

...