Python箱型图

参考链接:
https://www.cnblogs.com/metafullstack/archive/2023/08/23/17651922.html
https://matplotlib.org/stable/gallery/statistics/boxplot_color.html#sphx-glr-gallery-statistics-boxplot-color-py

概要

箱线图(箱形图、盒须图)是一种基于5个统计量(上边界、上四分位数、中位数、下四分位数以及下边界)显示数据分布的标准化方法,其可以用来检测数据的异常值和数据分布的形状,以及数据集的离散程度。图中矩形框显示数据集的上下四分位数,而矩形框中延伸出的线段(触须)则用于显示其余数据的分布位置,剩下超过上下四分位间距的数据点则被视为“异常值”。
在这里插入图片描述

函数

matplotlib.pyplot.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_ticks=True, 
autorange=False, 
zorder=None, 
capwidths=None, *, 
data=None)

参数功能参数功能
常规参数
x指定要绘制箱形图的数据notch是否绘制带缺口的箱形图
patch_artist是否填充箱体的颜色vert是否将箱线图垂直摆放
widths指定箱线图的宽度sym指定异常点的形状
whis指定上下边界与上下四分位数的距离labels为箱线图添加标签
capwidths设置须线帽长度position指定箱线图的位置
显示控制参数
showmeans是否显示均值点meanline是否显示均值线
showbox是否显示箱形图的箱体showcaps是否显示须线帽
showfliers是否显示异常值
细节属性参数
medianprops设置中位线属性meanprops设置均值点属性
boxprops设置箱体属性capprops设置须帽属性
whiskerprops设置须线属性flierprops设置异常点属性

boxplot() 函数是以字典格式返回箱线图的每个组件对象,每个键的键值为matplotlib.lines.Line2D类对象的列表,具体包括:

参数功能
boxes箱体的主体显示四分位数;
medians每个箱体的中位数水平线;
whiskers每个箱体的须线;
caps须线末端的直线,即须线帽;
fliers异常值;
means均值点或直线。

实现代码

# 设置字体, 解决中文乱码问题
    plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
    fig, ax = plt.subplots()
    # 数据根据自己的进行修改
    all_data = [ever.flatten(), ever_old.flatten(), ever_aga.flatten(), ever_test.flatten(), ever_mga.flatten()]
    boxplot = ax.boxplot(
        x=all_data,
        vert=True,
        widths=0.3,
        labels=['Erjia', 'GA', 'aga', 'test', 'mga'],
        patch_artist=True,
        showmeans=True,  # 显示均值点
        meanline=True,
        meanprops={  # 设置均值点属性
           'marker': 'o', 'markersize': 7.5, 'markeredgewidth': 0.75, 'markerfacecolor': '#b7e1a1', 'markeredgecolor': 'r', 'color': 'k', 'linewidth': 1.5},
        whiskerprops={  # 设置须的线条属性
            'linestyle': '--', 'linewidth': 1.2, 'color': '#480656'
        },
        capprops={
            'linestyle': '-', 'linewidth': 1.5, 'color': '#480656'
        },
    )
    title = ax.set_title('Fitness')
    colors = ['#DAF6E1', '#F6F8C1', '#FFCC77', '#9392B2', '#13789F']
    for patch, color in zip(boxplot['boxes'], colors):
        patch.set_facecolor(color)

    ax.yaxis.grid(True)
    ax.set_xlabel("对比")
    ax.set_ylabel("适应度值")

在这里插入图片描述

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值