一周学会Matplotlib3 Python 数据可视化-绘制箱线图(Box)

锋哥原创的Matplotlib3 Python数据可视化视频教程:

2026版 Matplotlib3 Python 数据可视化 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili

课程介绍

本课程讲解利用python进行数据可视化 科研绘图-Matplotlib,学习Matplotlib图形参数基本设置,绘图参数及主要函数,以及Matplotlib基础绘图,和Matplotlib高级绘图。

绘制箱线图(Box)

箱线图(Box Plot)是一种用于展示数据分布特征的统计图表,能清晰显示数据的中位数、四分位数、异常值等关键统计量。它特别适合比较多个数据集分布情况。 箱线图组成要素:

  1. 箱体 (Box)

    • 下边界:第一四分位数 (Q1, 25%)

    • 上边界:第三四分位数 (Q3, 75%)

    • 箱内横线:中位数 (Q2, 50%)

  2. 须 (Whiskers)

    • 上限:Q3 + 1.5×IQR

    • 下限:Q1 - 1.5×IQR

    • IQR = Q3 - Q1(四分位距)

  3. 异常值 (Outliers)

    • 超出上下须范围的数据点

plt.boxplot() 是 Matplotlib 中用于绘制箱线图的核心函数,用于展示数据的分布特征(如中位数、四分位数、异常值等)。以下是详细解析:

plt.boxplot(x,                         # 输入数据(数组或序列的序列)notch=None,                # 是否绘制缺口箱线图(显示中位数置信区间)sym=None,                  # 异常值的标记符号vert=None,                 # 是否垂直放置(True为垂直,False为水平)whis=None,                 # 定义须的位置(默认1.5倍IQR)positions=None,            # 箱线图的位置widths=None,               # 箱体的宽度patch_artist=None,         # 是否填充箱体颜色bootstrap=None,            # 缺口箱线图的置信区间计算方法usermedians=None,          # 用户指定的中位数conf_intervals=None,       # 用户指定的置信区间meanline=False,            # 是否用线表示均值showmeans=False,           # 是否显示均值showcaps=True,             # 是否显示箱线图顶端的横线showbox=True,              # 是否显示箱体showfliers=True,           # 是否显示异常值boxprops=None,             # 箱体属性whiskerprops=None,         # 须的属性capprops=None,             # 顶端横线的属性medianprops=None,          # 中位线属性meanprops=None,            # 均值属性flierprops=None,           # 异常值属性manage_ticks=True,         # 是否自动管理刻度autorange=False,           # 是否自动调整范围zorder=None                # 绘图顺序
)

三、核心参数详解

  1. 数据输入 (x)

  • 一维数组:单组数据

  • 列表的列表/数组的数组:多组数据(每组数据绘制一个箱体)

  • 字典:键为标签,值为数据

  1. 箱体样式控制

  • notch:是否绘制缺口箱线图(显示中位数置信区间)

  • patch_artist:True时可用boxprops填充颜色

  • widths:箱体宽度(默认0.5)

  1. 异常值处理

  • showfliers:是否显示异常值

  • sym:异常值标记符号(默认'o')

  • whis:须的长度(默认1.5,可设为[5,95]表示百分位数)

  1. 统计量显示

  • showmeans:显示均值(默认False)

  • meanline:True时用横线表示均值,False时用点表示

  1. 样式属性

  • boxprops:箱体属性(如dict(color='red', facecolor='blue')

  • whiskerprops:须的属性(如dict(linestyle='--', color='green')

  • medianprops:中位线属性(如dict(color='black', linewidth=2)

  • flierprops:异常值属性(如dict(marker='x', markersize=8)

我们来看一个示例:

import matplotlib
import matplotlib.pyplot as plt
import numpy as np
​
# 设置matplotlib使用黑体显示中文
matplotlib.rcParams['font.family'] = 'Microsoft YaHei'
​
# 创建示例数据
np.random.seed(42)
data = [np.random.normal(0, std, 100) for std in range(1, 5)]
# 创建箱线图
plt.figure(figsize=(10, 6))
​
# 绘制箱线图
box = plt.boxplot(data,vert=True,  # 垂直方向patch_artist=True,  # 填充颜色tick_labels=['组1', '组2', '组3', '组4'])
​
# 设置箱子颜色
colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728']
for patch, color in zip(box['boxes'], colors):patch.set_facecolor(color)patch.set_alpha(0.7)  # 设置透明度
​
# 设置须线和异常点样式
plt.setp(box['whiskers'], color='red', linestyle='-')  # 箱线图的“须”部分,即从箱子延伸出去的两条线(上须和下须),表示数据的范围(通常是1.5倍IQR内的数据)。
plt.setp(box['caps'], color='yellow')  # 箱线图须线末端的横线,称为“帽”。每个须有两个帽(上须的上帽和下须的下帽)。
plt.setp(box['fliers'], marker='o', markersize=8,markerfacecolor='none', markeredgecolor='blue')  # 箱线图中的异常值点,即超出1.5倍IQR范围的数据点。
plt.setp(box['medians'], color='gray', linewidth=2)  # 箱线图中的中位数线,即箱子中间的横线。
​
# 添加标题和标签
plt.title('基本箱形图示例', fontsize=14)
plt.xlabel('数据组', fontsize=12)
plt.ylabel('值', fontsize=12)
plt.grid(axis='y', linestyle='--', alpha=0.7)
​
plt.tight_layout()
plt.show()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/93340.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/93340.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4.4 vue3生命周期函数

vue3生命周期函数生命周期钩子名称对比表阶段Vue 2 选项式 APIVue 3 组合式 API说明创建前beforeCreateonBeforeCreate(已废弃)Vue 3 中 setup() 替代创建完成createdsetup()(替代)setup 是入口,代替 beforeCreate 和 …

无脑整合springboot2.7+nacos2.2.3+dubbo3.2.9实现远程调用及配置中心

简介: 好久没有写博客了,最近辞职了有时间进行一次分享,今天我们主要是使用单体服务springboot整合nacos实现配置中心,然后整合dubbo来实现远程的rpc调用。如下是本地案例架构图,生产者和消费者的配置在nacos配置中心上…

腾讯位置商业授权微信小程序逆地址解析(坐标位置描述)

微信小程序JavaScript SDK 开发指南 逆地址解析(坐标位置描述) reverseGeocoder(options:Object) 本接口提供由坐标到坐标所在位置的文字描述的转换,输入坐标返回地理位置信息和附近poi列表。 注:坐标系采用gcj02坐标系 options属性说明 属性类型必填…

3D商品展示:技术狂欢下的普及困局

当微软推出Copilot 3D——仅需一张照片即可生成可编辑的3D模型时,业界曾欢呼“建模门槛彻底消失”。然而技术的美好愿景却撞上现实的铜墙铁壁:当前电商平台3D商品加载卡顿导致用户跳出率超60%,企业3D化渗透率仍不足34%。绚烂的技术烟花下&…

(Arxiv-2025)Stand-In:一种轻量化、即插即用的身份控制方法用于视频生成

Stand-In:一种轻量化、即插即用的身份控制方法用于视频生成 paper是WeChat发布在Arxiv 2025的工作 paper title:Stand-In: A Lightweight and Plug-and-Play Identity Control for Video Generation Code:链接 图1:给定一张参考图像&#xff…

数据科学与爬虫技术学习笔记

数据科学与爬虫技术学习笔记 一、数据科学基础库 1. NumPy:数值计算的基石 NumPy 是 Python 科学计算的核心库,专为数组和矩阵操作设计,能大幅简化循环操作,提供丰富的数学函数。 核心优势:高效处理同类型元素的多维…

学习嵌入式之硬件——I2C

一、I2C1.定义内部集成电路的简称,半双工串行同步通信,是芯片和芯片之间的通信方式;通常只有一个主机,多个从机,采用主从应答的方式上图所示是IIC的总线的使用场景,所有挂载在IIC总线上的设备都有两根信号线…

使用websockt

封装websocktHooksimport { ref, onMounted, onUnmounted } from vue;/*** webSocket的Hooks* param {string} websocket链接地址* */ export function useWebSocket(url: string) {// 核心状态 const data: Ref<any> ref(null);//收到websocket返回的数据const socke…

Jmeter自定义脚本

目录 log&#xff1a;输出类 Label&#xff1a;你自定义的组件的名称 FileName&#xff1a;添加的脚本文件的文件名 Parameters&#xff1a;你传入的参数&#xff0c;是一个字符串 args&#xff1a;你传入的参数&#xff0c;是一个数组 Parameters和args的异同&#xff1…

飞算 JavaAI 电商零售场景实践:从订单峰值到供应链协同的全链路技术革新

目录 一、电商核心场景的技术攻坚 1.1 分布式订单系统的事务一致性设计 1.1.1 TCC 模式下的订单创建流程 1.1.2 订单状态机的可靠流转 1.2 高并发秒杀系统的架构设计 1.2.1 多级限流与流量削峰 1.2.2 库存防超卖机制 1.3 智能推荐与用户行为分析 1.3.1 用户行为实时采…

51单片机-51单片机介绍

51单片机介绍单片机简介什么是单片机呢&#xff1f;单片机是一种集成电路芯片&#xff0c;采用超大规模集成电路技术将中央处理器&#xff08;CPU&#xff09;、随机存储器&#xff08;RAM&#xff09;、只读存储器&#xff08;ROM&#xff09;、多种I/O口、中断系统、定时器/计…

8月AI面试工具测评:破解规模化招聘难题

金秋校招临近&#xff0c;企业面临“百万简历涌入VS面试官团队告急”的典型困境。传统线下面试效率低下、标准参差&#xff0c;难以应对短时间内爆发式的人才筛选需求。AI面试工具凭借自动化与智能化特性成为破局关键&#xff0c;但市面上产品良莠不齐——究竟哪款能兼顾效率与…

Debian新一代的APT软件源配置文件格式DEB822详解

Debian 的 DEB822 格式详解&#xff1a;新一代 APT 源配置 DEB822 是一种基于 RFC 822 数据格式的配置文件语法&#xff0c;Debian 新一代的 APT 软件源配置文件格式就采用了 DEB822。DEB822 格式从 Debian 11 (Bullseye) 开始被引入&#xff0c;并在 Debian 12 (Bookworm) 中成…

实战 AI8051U 音视频播放:USART-SPI→DMA-P2P→SPI+I2S 例程详解

视频P2P播放&#xff0c;时间计算&#xff1a;fps20,50ms 周期刷屏时间&#xff1a;160*80 一帧刷屏时间28.2ms帧间隔&#xff1a;50ms-28.2ms21.8ms音频双缓冲区交叉播放&#xff0c;利用视频播放帧间隔加载下一个缓冲区音频数据&#xff0c;时间计算&#xff1a;16000采样率 …

解释器模式C++

解释器模式&#xff08;Interpreter Pattern&#xff09;是一种行为型设计模式&#xff0c;它用于定义一种语言的语法规则&#xff0c;并构建一个解释器来解释该语言中的句子。这种模式适用于需要处理固定语法规则的场景&#xff0c;如表达式解析、配置文件解析等。 解释器模式…

debian 13 显示中文字体 不再显示菱形块 终端显示中文

找了很多坑。。其它就安装一下中文字体即可 。 apt install ttf-wqy-zenhei 之后测试命令 fc-list &#xff1a;langzh 显示了刚字体的路径和中文字即成功了。 rootdebian:~# dpkg-reconfigure locales 以上命令配置中文语言。 debian 12.11 安装 MySQL 下载配置文件 &am…

51单片机-驱动蜂鸣器模块教程

本章概述思维导图&#xff1a; 51单片机驱动蜂鸣器模块教程 蜂鸣器简介 蜂鸣器是一种将电信号转换为声音信号的电子元件&#xff0c;广泛应用于报警、提示、通知等场景。其核心原理基于压电效应或电磁感应&#xff1a;因此可分为两种类型蜂鸣器&#xff1a;压电式蜂鸣器和电磁…

常用Linux指令:Java/MySQL/Tomcat/Redis/Nginx运维指南

一、基础Linux指令1. 文件与目录操作ls -lh # 查看文件详情(人类可读格式) pwd # 显示当前目录路径 cd /path # 切换目录 mkdir dirname # 创建目录 rm -rf dirname # 强制删除目录 cp -r src dest # 递归复制目录 mv old new # 移动/重命…

小红书帖子评论的nodejs爬虫脚本

从小红书上爬取评论&#xff0c;但是目前还不能完全爬取子评论&#xff0c;使用GPT没能解决这个问题。后续博主可能会改进。或者如果你懂的话&#xff0c;可以在博主代码基础上改进。需要安装nodejs软件&#xff0c;部署环境变量。博主是在pycharm中运行的。代码无套路获取。自…

【iOS】多线程原理

目录 前言 基本概念及原理 线程、进程与队列 线程的定义&#xff1a; 进程的定义&#xff1a; 线程与进程之间的联系与区别&#xff1a; 线程和runloop的关系 影响任务执行速度的因素 多线程 多线程生命周期 线程池的原理 iOS中多线程的实现方式 线程安全问题 互斥…