首頁 > 軟體

Python利用matplotlib.pyplot.boxplot()繪製箱型圖範例程式碼

2022-08-01 22:03:51

一、matplotlib.pyplot.boxplot()語法

boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None,
widths=None, patch_artist=None, bootstrap=None, usermedians=None,
conf_intervals=None, meanline=None,showmeans=None, showcaps=None,
showbox=None, showfliers=None, boxprops=None, labels=None, flierprops=None,
medianprops=None, meanprops=None, capprops=None, whiskerprops=None, 
manage_ticks=True, autorange=False, zorder=None, *, data=None)
plt.boxplot(
    x, # 指定要繪製箱線圖的資料
    notch=True or False, # 是否是凹口的形式展現箱線圖,預設非凹口
    sym, # str值,指定異常點的形狀,預設為+號顯示
    vert=True or False, # 是否需要將箱線圖垂直襬放,預設True垂直襬放
    whis, # float值,指定上下須與上下四分位的距離,預設為1.5倍的四分位差
    bootstrap, # int值,指定引導置信區間切口箱線圖的中間位置
    positions, # 指定箱線圖的位置 預設為[0,1,2…]
    widths, # 指定箱線圖的寬度,預設值:0.5
    patch_artist=True or False, # 是否填充箱體的顏色 預設值False不填充
    labels, # 為箱線圖新增標籤,類似於圖例的作用
    manage_ticks=True or False, # 如果為True,刻度位置和標籤將被調整為匹配箱線圖的位置。預設值:True
    showmeans=True or False, # 是否顯示均值,預設值:False不顯示
    meanline=True or False, # 是否用線的形式表示均值,預設值False用點來表示
    zorder, # 箱線圖的順序
    showcaps=True or False, # 是否顯示箱線圖頂端和末端的兩條線,預設值True顯示
    showbox=True or False, # 是否顯示箱線圖的箱體,預設值True顯示;
    showfliers=True or False, # 是否顯示異常值,預設值True顯示;
    boxprops, # 設定箱體的屬性,如邊框色,填充色等;
    flierprops, # 設定異常值的屬性,如異常點的形狀、大小、填充色等;
    medianprops, # 設定中位數的屬性,如線的型別、粗細等;
    meanprops, # 設定均值的屬性,如點的大小、顏色等;
    capprops, # 設定箱線圖頂端和末端線條的屬性,如顏色、粗細等;
    whiskerprops,# 設定鬍鬚的屬性,如顏色、粗細、線的型別等
)

二、繪製箱型圖

①繪製簡單箱型圖

import matplotlib.pyplot as plt
import numpy as np
 
data=[np.random.normal(0,std,100) for std in range(1,4)]
 
plt.boxplot(data) 
 
plt.show()

②各個引數繪製箱型圖

(1)notch引數(bool值,是否凹口的形式展現箱線圖,預設值False非凹口)

import matplotlib.pyplot as plt
 
data=[np.random.normal(0,std,100) for std in range(1,4)]
 
fig=plt.figure()
 
# notch=True凹口的形式
ax1=fig.add_subplot(121)
plt.boxplot(data,notch=True) 
plt.title('凹口的形式',size=20)
 
# notch=False非凹口的形式
ax2=fig.add_subplot(122)
plt.boxplot(data,notch=False) 
plt.title('非凹口的形式',size=20)
 
plt.show()

(2)sym(str,指定異常點的形狀,預設為+號顯示)

import matplotlib.pyplot as plt
import numpy as np
 
data=[np.random.normal(0,std,100) for std in range(1,4)]
 
plt.boxplot(data,sym='^') 
 
plt.show()

(3)vert引數(bool值,是否需要將箱線圖垂直襬放,預設True垂直襬放)

import matplotlib.pyplot as plt
 
data=[np.random.normal(0,std,100) for std in range(1,4)]
 
fig=plt.figure()
 
# vert=True箱型圖垂直襬放
ax1=fig.add_subplot(121)
plt.boxplot(data,vert=True) 
plt.title('垂直襬放',size=20)
 
# vert=False箱型圖水平擺放
ax2=fig.add_subplot(122)
plt.boxplot(data,vert=False) 
plt.title('水平擺放',size=20)
 
plt.show()

(4)widths引數(float值,指定箱線圖的寬度,預設值:0.5)

import matplotlib.pyplot as plt
import numpy as np
 
data=[np.random.normal(0,std,100) for std in range(1,4)]
 
plt.boxplot(data,widths=[0.3,0.6,0.5]) 
 
plt.show()

(5)patch_artist(bool值,是否填充箱體顏色,預設值:False不填充)

import matplotlib.pyplot as plt
 
data=[np.random.normal(0,std,100) for std in range(1,4)]
 
fig=plt.figure()
 
# patch_artist=True填充箱體顏色
ax1=fig.add_subplot(121)
plt.boxplot(data,patch_artist=True) 
plt.title('填充箱體顏色',size=20)
 
# patch_artist=False不填充箱體顏色
ax2=fig.add_subplot(122)
plt.boxplot(data,patch_artist=False) 
plt.title('不填充箱體顏色',size=20)
 
plt.show()

(6)showmeans引數(bool值,是否顯示均值,預設值False不顯示)

import matplotlib.pyplot as plt
 
data=[np.random.normal(0,std,100) for std in range(1,4)]
 
fig=plt.figure()
 
# showmeans=True顯示均值
ax1=fig.add_subplot(121)
plt.boxplot(data,showmeans=True) 
plt.title('顯示均值',size=20)
 
# showmeans=False不顯示均值
ax2=fig.add_subplot(122)
plt.boxplot(data,showmeans=False) 
plt.title('不顯示均值',size=20)
 
plt.show()

(7)meanline引數(bool值,是否用線的形式表示均值,預設值False用點來表示)

注意:只有當showmeans=True時(顯示均值時),才看得見效果。

import matplotlib.pyplot as plt
 
data=[np.random.normal(0,std,100) for std in range(1,4)]
 
fig=plt.figure()
 
# meanline=True用線顯示均值
ax1=fig.add_subplot(121)
plt.boxplot(data,showmeans=True,meanline=True) 
plt.title('用線顯示均值',size=20)
 
# meanline=False用點顯示均值
ax2=fig.add_subplot(122)
plt.boxplot(data,showmeans=True,meanline=False) 
plt.title('用點顯示均值',size=20)
 
plt.show()

(8)showcaps引數(bool值,是否顯示箱線圖頂端和末端的兩條線,預設值True顯示)

import matplotlib.pyplot as plt
 
data=[np.random.normal(0,std,100) for std in range(1,4)]
 
fig=plt.figure()
 
# showcaps=True顯示箱線圖頂端和末端的兩條線
ax1=fig.add_subplot(121)
plt.boxplot(data,showcaps=True) 
plt.title('顯示',size=20)
 
# showcaps=False不顯示箱線圖頂端和末端的兩條線
ax2=fig.add_subplot(122)
plt.boxplot(data,showcaps=False) 
plt.title('不顯示',size=20)
 
plt.show()

(9)showbox引數(bool值,是否顯示箱線圖的箱體,預設值True顯示)

import matplotlib.pyplot as plt
 
data=[np.random.normal(0,std,100) for std in range(1,4)]
 
fig=plt.figure()
 
# showbox=True顯示箱線圖的箱體
ax1=fig.add_subplot(121)
plt.boxplot(data,showbox=True) 
plt.title('顯示',size=20)
 
# showbox=False不顯示箱線圖的箱體
ax2=fig.add_subplot(122)
plt.boxplot(data,showbox=False) 
plt.title('不顯示',size=20)
 
plt.show()

(10)showfliers引數(bool值,是否顯示異常值,預設值True顯示)

import matplotlib.pyplot as plt
 
data=[np.random.normal(0,std,100) for std in range(1,4)]
 
fig=plt.figure()
 
# showfliers=True顯示異常值
ax1=fig.add_subplot(121)
plt.boxplot(data,showfliers=True) 
plt.title('顯示',size=20)
 
# showfliers=False不顯示異常值
ax2=fig.add_subplot(122)
plt.boxplot(data,showfliers=False) 
plt.title('不顯示',size=20)
 
plt.show()

(11)boxprops引數(設定箱體的屬性,如邊框色,填充色等)

import matplotlib.pyplot as plt
 
data=[np.random.normal(0,std,100) for std in range(1,4)]
 
fig=plt.figure()
 
# sboxprops={'color':'r'} 設定箱體邊框色
ax1=fig.add_subplot(121)
plt.boxplot(data,boxprops={'color':'r'}) 
plt.title('設定箱體邊框色',size=20)
 
# patch_artist=True 填充箱體顏色
# boxprops={'facecolor':'pink'}設定箱體填充色
ax2=fig.add_subplot(122)
plt.boxplot(data,patch_artist=True,boxprops={'facecolor':'pink'}) 
plt.title('設定箱體填充色',size=20)
 
plt.show()

(12) flierprops引數(設定異常值的屬性,如異常點的形狀、大小、填充色等)

import matplotlib.pyplot as plt
import numpy as np
 
data=[np.random.normal(0,std,100) for std in range(1,4)]
 
plt.boxplot(data,flierprops={'marker':'*'}) 
 
plt.show()

(13)medianprops引數(設定中位數的屬性,如線的型別、粗細等)

import matplotlib.pyplot as plt
import numpy as np
 
data=[np.random.normal(0,std,100) for std in range(1,4)]
 
plt.boxplot(data,medianprops={'linestyle':':','linewidth':5,'color':'m'}) 
 
plt.show()

(14)meanprops引數(設定均值的屬性)

import matplotlib.pyplot as plt
import numpy as np
 
data=[np.random.normal(0,std,100) for std in range(1,4)]
 
plt.boxplot(data,showmeans=True,meanprops={'marker':'*'})
 
plt.show()

(15)capprops引數(設定箱線圖頂端和末端線條的屬性,如顏色、粗細等)

import matplotlib.pyplot as plt
import numpy as np
 
data=[np.random.normal(0,std,100) for std in range(1,4)]
 
plt.boxplot(data,
            showmeans=True,
            capprops={'linestyle':'--','color':'m','linewidth':3})
 
plt.show()

(16)whiskerprops引數(設定須的屬性,如顏色、粗細、線的型別等)

import matplotlib.pyplot as plt
import numpy as np
 
data=[np.random.normal(0,std,100) for std in range(1,4)]
 
plt.boxplot(data,
            showmeans=True,
            whiskerprops={'linestyle':'--','color':'m','linewidth':3})
 
plt.show()

總結 

到此這篇關於Python利用matplotlib.pyplot.boxplot()繪製箱型圖的文章就介紹到這了,更多相關matplotlib.pyplot.boxplot()繪製箱型圖內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com