1.箱型圖
它主要用於反映原始數據分布的特征,還可以進行多組數據分布特征的比較
2.適合數據類型
針對連續型變量
圖表解讀:
1.箱子的大小取決於數據的四分位距,即IQR = Q3 - Q1(Q3: 75%分位數 , Q1: 25%分位數 , Q3和Q1為四分位數)。50%的數據集中於箱體,若箱體太大即數據分布離散,數據波動較大,箱體小表示數據集中。
2.箱子的上邊為上四分位數Q3,下邊為下四分位數Q1,箱體中的橫線為中位數Q2(50%分位數)
3.箱子的上觸須為數據的最大值Max,下觸須為數據的最小值Min(注意是非離群點的最大最小值,稱為上下相鄰值)
4.若數據值 > Q3+1.5 * IQR(上限值) 或 數據值 < Q1-1.5 * IQR(下限值) ,均視為異常值。數據值 > Q3+3 * IQR 或 數據值 < Q1-3 * IQR ,均視為極值。在實際應用中,不會顯示異常值與極值的界限,而且一般統稱為異常值。
- 也表明上下觸須不一定是數據的最大最小值,
- (1)若數據的最大值比上限值小的,那么上觸須頂點就是觀察到的最大的;若數據的最大值比上限值大的,那么上觸須頂點就是上限值,觀察到的最大值就是異常點。
- (2)若數據的最小值比下限值大的,那么下觸須頂點就是觀察到的最小值;若數據的最小值比下限值小的,那么下觸須頂點就是下限值,觀察到的最小值就是異常點。
- 上述情況復雜,在線范圍外的,直接理解成異常值即可
3.python中plt.boxplot()使用
下面是plt.boxplot()的參數
plt.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_xticks=True,
autorange=False,
zorder=None,
hold=None,
data=None)
- x:指定要繪制箱線圖的數據;
- notch:是否是凹口的形式展現箱線圖,默認非凹口;
- sym:指定異常點的形狀,默認為+號顯示;
- vert:是否需要將箱線圖垂直擺放,默認垂直擺放;
- whis:指定上下須與上下四分位的距離,默認為1.5倍的四分位差;
- positions:指定箱線圖的位置,默認為[0,1,2…];
- widths:指定箱線圖的寬度,默認為0.5;
- patch_artist:是否填充箱體的顏色;
- meanline:是否用線的形式表示均值,默認用點來表示;
- showmeans:是否顯示均值,默認不顯示;
- showcaps:是否顯示箱線圖頂端和末端的兩條線,默認顯示;
- showbox:是否顯示箱線圖的箱體,默認顯示;
- showfliers:是否顯示異常值,默認顯示;
- boxprops:設置箱體的屬性,如邊框色,填充色等;
- labels:為箱線圖添加標簽,類似於圖例的作用;
- filerprops:設置異常值的屬性,如異常點的形狀、大小、填充色等;
- medianprops:設置中位數的屬性,如線的類型、粗細等;
- meanprops:設置均值的屬性,如點的大小、顏色等;
- capprops:設置箱線圖頂端和末端線條的屬性,如顏色、粗細等;
- whiskerprops:設置須的屬性,如顏色、粗細、線的類型等;
例子
import numpy as np
import matplotlib.pyplot as plt
plt.style.use("ggplot")
plt.rcParams["font.sans-serif"]=["SimHei"] #正常顯示中文標簽
plt.rcParams["axes.unicode_minus"]=False #正常顯示負號
np.random.seed(800) #設置隨機種子
data=np.random.randint(1,100,55)
plt.figure(figsize=(5,6)) #設置圖形尺寸大小
plt.boxplot(data,
notch=False, #中位線處不設置凹陷
widths=0.2, #設置箱體寬度
medianprops={'color':'red'}, #中位線設置為紅色
boxprops=dict(color="blue"), #箱體邊框設置為藍色
labels="A", #設置標簽
whiskerprops = {'color': "black"}, #設置須的顏色,黑色
capprops = {'color': "green"}, #設置箱線圖頂端和末端橫線的屬性,顏色為綠色
flierprops={'color':'purple','markeredgecolor':"purple"} #異常值屬性,這里沒有異常值,所以沒表現出來
)
plt.title("55個1-100的隨機整數的箱線圖",fontsize="xx-large",color="#DE0052")
plt.show()