Python利用matplotlib.pyplot.boxplot()繪制箱型圖實例代碼

一、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()繪制箱型圖內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: