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!
推薦閱讀:
- Python使用plt.boxplot()函數繪制箱圖、常用方法以及含義詳解
- Python boxplot 用法詳解
- Python數據分析應用之Matplotlib數據可視化詳情
- python用matplotlib可視化繪圖詳解
- python繪制箱型圖