Боксплот в пандах с доверительными интервалами и загрузчик возвращает исключение - Воспроизводимый пример с набором данных радужной оболочки - PullRequest
0 голосов
/ 27 апреля 2018

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

from sklearn import datasets

iris = datasets.load_iris()

iris = iris.data

iris = pd.DataFrame(iris)

iris.columns = ['a', 'b', 'c', 'd']

iris.boxplot(column='a', figsize=(15,20), showmeans = True, patch_artist = True, conf_intervals = True, bootstrap = 100)

plt.show()

IndexError: tuple index out of range

Youradvice будет оценен по достоинству

1 Ответ

0 голосов
/ 27 апреля 2018

Вам необходимо указать доверительные интервалы в виде списка кортежей, соответствующих чертам, которые вы планируете. В вашем случае вы строите только столбец 'a', поэтому вам нужно указать список с одним кортежем:

iris.boxplot(column='a', figsize=(15,20), notch=True, showmeans = True, \ 
             patch_artist = True, conf_intervals = [(4, 7)], bootstrap = 10000)

plt.show()

выдает следующую цифру

enter image description here

Однако, согласно документации, conf_intervals должны быть None, если вы запускаете загрузку, потому что она переопределяет параметры, вычисленные загрузкой. https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.boxplot.html

Итак, с conf_intervals None для 'a', вывод:

iris.boxplot(column='a', figsize=(15,20), notch=True, showmeans = True, \
             patch_artist = True, conf_intervals = [None], bootstrap = 10000)

plt.show()

enter image description here

...