logo

Box Plot в Python с помощта на Matplotlib

Какво е Box Plot?

Кутийката е начин за визуализиране на разпределението на данните с помощта на кутия и няколко вертикални линии. Известен е като участък с мустаци. Данните могат да бъдат разпределени между пет ключови диапазона, които са както следва:

    минимум: Q1-1,5*IQR1-ви квартил(Q1): 25-ти персентилМедиана:50-ти процентил3-та четвърт(Q3): 75-ти процентилМаксимум: Q3+1.5*IQR

Тук IQR представлява Интерквартилен диапазон който започва от първия квартил (Q1) и завършва в третия квартил (Q3).

Визуализация на Box Plot

Box Plot в Python с помощта на Matplotlib

В диаграмата с кутия онези точки, които са извън обхвата, се наричат ​​извънредни стойности. Можем да създадем кутийна графика на данните, за да определим следното:

  • Броят на отклоненията в набор от данни
  • Изкривени ли са данните или не
  • Обхватът на данните

Диапазонът на данните от минимум до максимум се нарича граница на мустаците. В Python ще използваме модула pyplot на модула matplotlib, който има вградена функция, наречена boxplot(), която може да създаде графичен график на всеки набор от данни.

Синтаксис:

 matplotlib.pyplot.boxplot(data,notch=none,vert=none,patch_artist,widths=none) 

Във функцията boxplot() имаме много атрибути, които могат да се използват за създаване на по-привлекателна и невероятна графика на набора от данни.

    данни: Данните трябва да бъдат масив или последователност от масиви, които ще бъдат изобразени.прорез: Този параметър приема само булеви стойности, или true, или false.Зелено: Този атрибут приема булева стойност. Ако е зададено на true, тогава графиката ще бъде вертикална. В противен случай ще бъде хоризонтално.позиция: Приема масива от цели числа, който определя позицията на кутията.ширини: Приема масива от цели числа, който определя ширината на кутията.patch_artist: този параметър приема булеви стойности, true или false, и това е незадължителен параметър.етикети: Това приема низовете, които определят етикетите за всяка точка от даннисредна линия: Приема булева стойност и не е задължителна.поръчка: Задава реда на boxplot.начално зареждане: Приема целочислената стойност, която определя обхвата на назъбения боксплот.

Пример1:

Ще създадем произволния набор от данни на масива numpy и ще създадем графиката на кутията.

алфа бета резитба
 import matplotlib.pyplot as plt import numpy as np np.random.seed(15) dataSet = np.random.normal(100, 25, 200) print(dataSet) figure = plt.figure(figsize =(10, 8)) plt.boxplot(dataSet) plt.show() 

Изход:

Box Plot в Python с помощта на Matplotlib

Обяснение:

В горния код, на първо място, импортирахме библиотеките numpy и matplotlib в кода. След това създадохме произволния набор от данни и начертахме графиката с помощта на функцията boxplot().

Пример2:

Можем да създадем множество графики на кутия едновременно в един и същи файл.

как да сортирате масив в java
 import matplotlib.pyplot as plt import numpy as np np.random.seed(10) dataSet1 = np.random.normal(100, 10, 220) dataSet2 = np.random.normal(80, 20, 200) dataSet3 = np.random.normal(60, 35, 220) dataSet4 = np.random.normal(50, 40, 200) dataSet = [dataSet1, dataSet2, dataSet3, dataSet4] figure = plt.figure(figsize =(10, 7)) ax = figure.add_axes([0, 0, 1, 1]) bp = ax.boxplot(dataSet) plt.show() 

Изход:

Box Plot в Python с помощта на Matplotlib

Обяснение:

В горния код имаме четири набора от данни, използващи произволни методи на numpy. След това създадохме списъка с четирите набора от данни и използваме тази вътрешна функция boxplot().

Пример 3:

Можем да използваме някои атрибути на функцията boxplot(), за да персонализираме диаграмата.

 import matplotlib.pyplot as plt import numpy as np np.random.seed(10) dataSet1 = np.random.normal(100, 10, 220) dataSet2 = np.random.normal(80, 20, 200) dataSet3 = np.random.normal(60, 35, 220) dataSet4 = np.random.normal(50, 40, 200) dataSet = [dataSet1, dataSet2, dataSet3, dataSet4] figure = plt.figure(figsize =(10, 7)) ax = figure.add_subplot(111) bp = ax.boxplot(dataSet, patch_artist = True,notch ='True', vert = 0) colors = ['#00FF00','#0F00FF', '#F00FF0','#FFFF0F'] for patch, color in zip(bp['boxes'], colors): patch.set_facecolor(color) for whisker in bp['whiskers']: whisker.set(color ='#8E008B',linewidth = 1.4,linestyle =':') for cap in bp['caps']: cap.set(color ='#8E008B',linewidth = 2.1) for median in bp['medians']: median.set(color ='blue',linewidth = 3) for flier in bp['fliers']: flier.set(marker ='D',color ='#d7298c',alpha = 0.6) ax.set_yticklabels(['dataSet1', 'dataSet2','dataSet3', 'dataSet4']) plt.title('Customized box plot using attributes') ax.get_xaxis().tick_bottom() ax.get_yaxis().tick_left() plt.show() 

Изход:

Box Plot в Python с помощта на Matplotlib

Обяснение:

В горния код създадохме четирите набора от данни с помощта на произволни функции и ги зададохме в списък. Сега сме задали различните цветове за всеки график на кутия, използвайки списъка с цветове и използвайки функцията set_facecolor().

java четене на csv

Ние сме задали ширината на линията на всеки график на кутия и също така сме задали етикетите за всеки график на кутия. Задали сме атрибут vert =0, което означава, че всички графики ще бъдат в хоризонтален режим.