Python——matplotlib模块构造箱型图检测异常值

一.箱型图

通俗来讲,就是将所有的数据都分布在这张图上,矩形上下限用四分为值,又用四分位值算出一个上界和下界,大于上界或者小于下界的值就是异常值。这里四分位距(IQR)就是上四分位与下四分位的差值。我们通过四分位距的1.5倍为标准,上界:超过上四分位+1.5倍IQR距离,下界:下四分位-1.5倍IQR距离的点为异常值。
在这里插入图片描述

分位值的定义和计算在这里:(https://blog.csdn.net/crj0926/article/details/100853490)

二.matplotlib模块

Matplotlib 是一个 Python 的 2D绘图库,通过 Matplotlib,pathon仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。

三.构造箱型图代码

1. boxplot函数参数:

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:设置须的属性,如颜色、粗细、线的类型等;

2. 代码:

#导入模块
import pandas as pd
import matplotlib.pyplot as plt
# 导入数据
titanic = pd.read_csv(r'C:\Users\asus\Desktop\age.csv')
# 检查年龄是否有缺失
any(titanic.age.isnull())
# 删除含有缺失年龄的观察
titanic.dropna(subset=['age'], inplace=True)
# 使用自带的样式美化图片
plt.style.use('ggplot')
# 设置中文和负号正常显示
plt.rcParams['font.sans-serif'] = 'Microsoft YaHei'
plt.rcParams['axes.unicode_minus'] = False
# 绘图:年龄箱线图
plt.boxplot(x = titanic.age, # 指定绘图数据
            whis=1.5,#1.5倍的四分位值
            patch_artist=True, # 要求用自定义颜色填充盒形图,默认白色填充
            showmeans=True, # 以点的形式显示均值
            boxprops = {'color':'black','facecolor':'#9999ff'}, # 设置箱体属性,填充色和边框色
            flierprops = {'marker':'o','markerfacecolor':'red','color':'black'}, # 设置异常值属性,点的形状、填充色和边框色
            meanprops = {'marker':'D','markerfacecolor':'indianred'}, # 设置均值点的属性,点的形状、填充色
            medianprops = {'linestyle':'--','color':'orange'}) # 设置中位数线的属性,线的类型和颜色
# 设置y轴的范围
plt.ylim(0,85)
# 去除箱线图的上边框与右边框的刻度标签
plt.tick_params(top='off', right='off')
# 显示图形
plt.show()

例图:whis=1.5
在这里插入图片描述
3.whis参数
上文提到,我们的上下界用到了1.5倍的四分位值去定义。
如果whis=3时,上下界之外还出现异常值,我们称其为极端异常值。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值