python數據科學——四分位準則及繪製箱線圖

繪製箱線圖一般有兩種方法:
1.pandas方法:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("26_finaldata_lowfreq_magn.csv")

feature_names = ["average"]

feature_data = {}
for f in feature_names:
    feature_data[f] = df[f]

data = pd.DataFrame(feature_data)
data.plot.box(title="Average value of electromagnetic acquisition data of platform 26")
plt.show()

在這裏插入圖片描述
2.matplotlib.pyplot方法:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("26_finaldata_lowfreq_magn.csv")

plt.boxplot(x=df["average"],
            patch_artist=True,   # 是否要自定義顏色
            showmeans=False,     # 是否顯示均值點
            boxprops={"color": "black", "facecolor": "c"},    # 箱體的顏色屬性,color:邊框色,facecolor:填充色
            flierprops={"marker": 'o', "markerfacecolor": "darkorange", "color": "black", "alpha": 0.8},  # 異常值的顏色屬性,color:輪廓顏色,marker:標記形狀,markerfacecolor:填充色
            medianprops={"linestyle": "--", "color": "black"})   # 中位線顏色屬性,linestyle:線型,color:線的顏色
plt.show()

在這裏插入圖片描述
通常我們可以通過四分位來檢測異常值:
在這裏插入圖片描述
通過上圖我們視在上下限之外的數據爲異常值。至於上四分位數、中位數、下四分位數,通過python的pandas的用法就能得出,無需自己計算:

import pandas as pd
import matplotlib.pyplot as plt

num = [1, 2, 3, 4, 5, 6, 7, 8]
print(pd.DataFrame(num).describe())
             0
count  8.00000
mean   4.50000
std    2.44949
min    1.00000
25%    2.75000
50%    4.50000
75%    6.25000
max    8.00000

25%、50%、75%分別對應上四分位數、中位數和下四分位數,通過公式我們計算得到上四分位數的位置爲6.75,也就是在數字6和7之間,但是num列表中根本不存在位置爲6.75的值,這時需要按照佔比來重新計算,我們認爲在6和7之間數據都是均勻分佈的,而6.75這個位置佔左邊6的75%,佔右邊7的25%,所以6 * 0.75+7 * 0.25=6.25,至於下四分位數同理,通過公式計算得到下四分位數的位置爲2.25,即在數字2和3之間,但是由於列表中不存在2.25的位置,所以經過重新計算,2.25這個位置佔左邊2的25%,佔右邊3的75%,2 * 0.25+3 * 0.75=2.75。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章