当前位置: 移动技术网 > IT编程>脚本编程>Python > python数据科学——四分位准则及绘制箱线图

python数据科学——四分位准则及绘制箱线图

2020年07月03日  | 移动技术网IT编程  | 我要评论

绘制箱线图一般有两种方法:
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。

本文地址:https://blog.csdn.net/qq_38883271/article/details/107057130

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网