python:matplotlib 箱线图(boxplot)参数及分析详解

python画箱线图boxplot目的是为了方面通过图的形式查看数据分散情况。用matplotlib画箱线图很简单,但是我们更重要的是怎么去看箱线图。

箱线图统计学知识

上限值:Q1-1.5×IQR
上相邻值:距离上限值最近的值
须线:上下分位数各自与上下相邻值的距离
上四分位数(Q1):一组数据按顺序排列,从小至大第25%位置的数值
中位数:一组数据按顺序排列,从小至大第50%位置的数值
中位线(IQR):Q3-Q1上四分位数至下四分位数的距离
下四分位数(Q3):一组数据按顺序排列,从小至大第75%位置的数值
下相邻值:距离下限值最近的值
下限值:Q3+1.5×IQR
离群值(异常值):一组数据中超过上下限的真实值
在这里插入图片描述
对照正态分布图来参考:
在这里插入图片描述
如果中位线往右偏移,那么数据呈左偏分布;
如果中位线往左偏移,那么数据呈右偏分布;

matplotlib画图箱线图

案例数据链接点击下载
在这里插入图片描述

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']

data=pd.read_csv('datingTestSet2.txt',sep='\t')
print(data.shape)
data.head()
>>>
飞行里程	视频游戏消耗时间	消费冰淇淋公斤数	感兴趣程度
0	40920	8.326976	0.953952	3
1	14488	7.153469	1.673904	2
2	26052	1.441871	0.805124	1
3	75136	13.147394	0.428964	1
4	38344	1.669788	0.134296	1
---------------------------------------------------
group=data.感兴趣程度.unique()
def group():
    df=[]
    group=data.感兴趣程度.unique()
    for x in group:
        a=data.飞行里程[data.感兴趣程度==x]
        df.append(a)
    return df
box1,box2,box3=group()[0],group()[1],group()[2]

#给各箱线图添加数据标签
def xticks():
    for x in range(len(group())):
        mx=int(group()[x].describe()['max'])
        mi=int(group()[x].describe()['min'])
        a=int(group()[x].describe()['25%'])
        b=int(group()[x].describe()['50%'])
        c=int(group()[x].describe()['75%'])
        up=int(a-1.5*(c-a))
        down=int(c+1.5*(c-a))
        xtext=[mi,up,a,b,c,mx,down]
        for y in xtext:
            plt.text(y-500,x+1.25,y,fontsize=11.1)

#绘制箱线图并设置需要的参数
plt.figure(figsize=(15,7))
plt.boxplot([box1,box2,box3],vert=False,showmeans=False)
plt.xticks(np.arange(0,100000,step=8000))
plt.ylabel('好感程度',fontsize=20.0)
plt.title('飞行里程',fontsize=20.0)
plt.yticks(fontsize=15.0)
xticks()
plt.show()

seaborn画图

在这里插入图片描述

import seaborn as sns
plt.figure(figsize=(15,7))
sns.boxplot('飞行里程','感兴趣程度',data=df,orient='h')
plt.ylabel('好感程度',fontsize=20.0)
plt.xlabel('飞行里程',fontsize=20.0)
plt.yticks(fontsize=15.0)
plt.show()
  • 18
    点赞
  • 147
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
箱线图是一种用于展示定量数据分布情况的图表,它呈现了一组数据的中位数、上下四分位数、极值和异常值。箱线图的绘制可以使用Python中的Matplotlib库,以下是一个例子: 引用: Python matplotlib箱线图设置颜色 ```python import matplotlib.pyplot as plt list1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] c_list = ['#ef476f', '#ffd166', '#118AD5'] # 颜色代码列表 # 绘制箱线图 f = plt.boxplot(list1, vert=True, sym='+b', showmeans=True, meanline=True, patch_artist=True, widths=0.2) for box, c in zip(f['boxes'], c_list): # 对箱线图设置颜色 box.set(color=c, linewidth=2) box.set(facecolor=c) plt.show() ``` 在这个例子中,我们使用了一个二维列表`list1`来存储数据,并使用`boxplot()`函数绘制了箱线图。通过传递参数`vert=True`,我们将箱线图垂直绘制。参数`sym`定义了异常值的样式,参数`showmeans`和`meanline`分别控制了是否显示均值和均值线。参数`patch_artist=True`使得箱线图填充颜色,我们使用变量`c_list`来存储了三种不同的颜色,之后我们使用`zip()`函数将`boxes`和`c_list`打包成元组,然后使用`set()`函数为每个箱子分配颜色。 引用: 利用PythonMatplotlib 绘制箱线图 如果想自己编写绘制箱线图的代码,可以按照以下步骤进行: 1. 计算数据的基本统计信息,包括中位数、上四分位数、下四分位数和极值。 2. 计算四分位数差,即上四分位数和下四分位数之差。 3. 计算箱线图的上下边界,即上限为上四分位数加上1.5倍的四分位数差,下限为下四分位数减去1.5倍的四分位数差。同时,将箱体的高度设置为四分位数差。 4. 绘制箱线图,包括中位数线、上下边界和箱体。 5. 可选地,将异常值标记出来。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值