箱線圖
箱線圖(Box-plot)又稱為盒須圖、盒式圖或箱型圖,是一種用作顯示一組數據分散情況資料的統計圖。因形狀如箱子而得名。在各種領域也經常被使用,它主要用於反映原始數據分布的特征,還可以進行多組數據分布特征的比較。箱線圖的繪制方法是:先找出一組數據的上限值、下限值、中位數(Q2)和下四分位數(Q1)以及上四分位數(Q3);然后,連接兩個四分位數畫出箱子;再將最大值和最小值與箱子相連接,中位數在箱子中間。


中位數:把數據按照從小到大的順序排序,然后最中間的那個值為中位數,如果數據的個數為偶數,那么就是最中間的兩個數的平均數為中位數。 上下四分位數:同樣把數據排好序后,把數據等分為4份。出現在
25%
位置的叫做下四分位數,出現在75%
位置上的數叫做上四分位數。但是四分位數位置的確定方法不是固定的,有幾種算法,每種方法得到的結果會有一定差異,但差異不會很大。上下限的計算規則是: IQR=Q3-Q1 上限=Q3+1.5IQR 下限=Q1-1.5IQR
使用matplotlib繪制箱線圖:
在matplotlib
中有plt.boxplot
來繪制箱線圖,這個方法的相關參數如下:
x
:需要繪制的箱線圖的數據。notch
:是否展示置信區間,默認是False
。如果設置為True
,那么就會在盒子上展示一個缺口。sym
:代表異常點的符號表示,默認是小圓點。vert
:是否是垂直的,默認是True
,如果設置為False
那么將水平方向展示。whis
:上下限的系數,默認是1.5
,也就是上限是Q3+1.5IQR
,可以改成其他的。也可以為一個序列,如果是序列,那么序列中的兩個值分別代表的就是下限和上限的值,而不是再需要通過IQR
來計算。positions
:設置每個盒子的位置。widths
:設置每個盒子的寬度。labels
:每個盒子的label
。meanline
和showmeans
:如果這兩個都為True
,那么將會繪制平均值的的線條。
示例代碼如下:
data = np.random.rand(100)*100 # 添加兩個異常值 data = np.append(data,np.array([-100,100])) plt.boxplot(data,meanline=True,showmeans=True)
效果圖如下:

箱線圖的應用場景:
- 直觀明了地識別數據中的異常值。
- 利用箱線圖判斷數據的偏態。
- 利用箱線圖比較幾批數據的形狀。
- 箱線圖適合比較多組數據,如果知識要看一組數據的分布情況,建議使用直方圖。