使用Matplotlib绘制箱线图:详细指南与示例

在数据分析和可视化领域,箱线图(Box Plot)是一种强大的工具,用于展示数据的分布特征,包括中位数、四分位数、异常值等。本文将详细介绍如何使用Matplotlib库在Python中绘制箱线图,并通过一个实际的血压数据集示例来指导读者。

1 箱线图的基本概念

箱线图是一种用于显示一组数据分散情况资料的统计图。它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较。箱线图的绘制方法是:先找出一组数据的上边缘、下边缘、中位数和两个四分位数,然后连接两个四分位数形成箱体,再将上边缘和下边缘与箱体相连接。

2 绘制箱线图的步骤

  1. 准备数据:首先,我们需要准备要绘制的数据。在本文的示例中,我们将使用模拟的血压数据集。
  2. 创建图形和轴对象:使用Matplotlib的subplots函数创建一个图形对象和轴对象。
  3. 绘制箱线图:使用轴对象的boxplot方法绘制箱线图。
  4. 美化图形:通过调整颜色、添加网格线、隐藏边框和设置刻度等方式美化图形。
  5. 保存和展示图形:使用savefig函数保存图形为文件,并使用show函数展示图形。

3 示例代码与解释

以下是一个完整的示例代码,用于绘制血压数据的箱线图:

import matplotlib.pyplot as plt
import numpy as np# 假设这是6组病人血压数据集(这里用随机数据代替实际数据)
bp_data1 = np.random.normal(120, 10, 100)  # 收缩压均值120,标准差10,样本量100
bp_data2 = np.random.normal(130, 15, 100)
bp_data3 = np.random.normal(110, 12, 100)
bp_data4 = np.random.normal(140, 20, 100)
bp_data5 = np.random.normal(100, 8, 100)
bp_data6 = np.random.normal(125, 14, 100)# 将所有数据整合到一个列表中
all_data = [bp_data1, bp_data2, bp_data3, bp_data4, bp_data5, bp_data6]# 设置标签
labels = ['A', 'B', 'C', 'D', 'E', 'F']# 创建一个图形对象和轴对象
fig, ax = plt.subplots(figsize=(12, 6))# 设置全局字体大小
plt.rcParams['font.size'] = 12# 绘制矩形箱线图
bplot = ax.boxplot(all_data,vert=True,  # 箱体垂直对齐patch_artist=True,  # 使用颜色填充labels=labels)  # 设置x轴刻度标签
ax.set_title('Rectangular Box Plot\\n(Blood Pressure Data)')
ax.set_xlabel('Patient Groups')
ax.set_ylabel('Blood Pressure (mmHg)')# 为箱线图设置颜色
colors = ['pink', 'lightblue', 'lightgreen', 'orange', 'purple', 'brown']
for patch, color in zip(bplot['boxes'], colors):patch.set_facecolor(color)# 添加水平网格线
ax.yaxis.grid(True, linestyle='--', alpha=0.7)# 隐藏图形的上边框和右边框
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)# 设置刻度向内显示
ax.tick_params(axis='both', which='major', direction='in')# 调整布局以避免标签重叠
plt.tight_layout()# 展示图形
plt.show()# 以高分辨率保存图形为PDF文件
plt.savefig("box_plot.pdf", dpi=300)

4 代码解释与美化技巧

  1. 数据准备:我们使用numpy库的random.normal函数生成了六组模拟的血压数据,每组数据包含100个样本。
  2. 图形和轴对象:使用plt.subplots函数创建了一个图形对象和轴对象,并设置了图形的大小。
  3. 绘制箱线图:通过轴对象的boxplot方法绘制了箱线图,并设置了箱体垂直对齐、颜色填充和x轴刻度标签。
  4. 美化图形:我们为箱体设置了不同的颜色,添加了水平网格线,隐藏了图形的上边框和右边框,并将刻度设置为向内显示。这些美化技巧使得图形更加清晰和美观。
  5. 保存和展示图形:使用savefig函数将图形保存为PDF文件,并使用show函数展示图形。

5 总结

本文详细介绍了如何使用Matplotlib库在Python中绘制箱线图,并通过一个实际的血压数据集示例进行了演示。通过本文的学习,读者可以掌握绘制箱线图的基本步骤和美化技巧,并能够在实际的数据分析和可视化工作中灵活应用。希望本文能够对读者有所帮助!

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

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

相关文章

基于微信小程序二手物品调剂系统设计与实现

文章目录 前言项目介绍技术介绍功能介绍核心代码数据库参考 系统效果图文章目录 前言 文章底部名片,获取项目的完整演示视频,免费解答技术疑问 项目介绍 二手物品调剂系统是一种在线平台,旨在促进用户之间的二手物品交易。该系统提供了一个…

数智合同 | 业财一体与履约联动的数字化转型

随着信息化技术的发展,合同数智化管理为应对合同管理挑战提供了新机遇。企业需要深入思考数智化手段在合同管理中的应用,以提高合同管理水平,应对新形势下的市场竞争挑战与合规要求,实现企业的高质量发展。 2024年5月,…

数据中心母线槽测温监控装置的优势和如何选型

在当今数字化高速发展的时代,数据中心成为了信息存储与处理的核心枢纽。而确保数据中心的稳定运行,对于企业和社会来说至关重要。其中,母线作为数据中心电力传输的关键环节,其正常运行直接关系到整个数据中心的可靠性。为了保障数…

2024新手攻略:项目管理工具+PMP备考经验不容错过!

(一)热门工具大盘点 禅道是一款专注于软件开发项目管理的工具。它涵盖了项目管理的各个环节,包括需求管理、任务分配、缺陷跟踪等。禅道的优势在于其对软件开发流程的深入理解和支持,能够帮助开发团队更好地管理项目进度和质量。…

免费的国标设备端模拟器,支持自定义编程,批量模拟大量国标GB28181设备

GB/T 28181是中国国家公共安全视频监控联网系统(简称“国标GB28181”)的一套标准,主要用于规范视频监控系统的互联互通。这套标准的实施旨在推动不同厂家设备之间的互操作性,促进视频监控市场的健康发展。本软件是针对GB28181标准…

算法01----移动零(C++)

题目展示 算法原理 我们这里要用到的算法是双指针移动,和我们之前学的快排的核心思想是一样的。我们看看怎么做吧。我会以图片的形式将我的思路告知大家。 这就是整个题目的整体思想算法,大家理解一下,其实这道题目还是很简单的。 代码编写…

02篇 机械考研复试简历保姆级教程,考研简历联系导师邮件复试调剂超全攻略 导师喜欢看到的简历(附模板)

考研复试简历怎么写?导师喜欢看到的简历(附模板) 复试简历,重要程度max!绝非小事一桩!它就像是你硬核经历的闪亮外衣,条理清晰、逻辑严谨且设计感十足,一定能在导师心中留下深刻印象…

基于neo4j知识图谱的菜谱推荐系统

🍴 AI菜谱推荐系统让你“煮”事半功倍! 🍴 找不到做饭灵感的时候,是不是总觉得“今天吃啥”这道选择题简直是终极挑战?别急,我们基于Neo4j知识图谱的菜谱推荐系统,正是为了解决你的困扰而设计&a…

空洞卷积:Atrous/Dilated convolution - 语义分割中多用到

没办法,我还是很多基础的、底层的模块不通透,读论文难免会受到阻碍,而且这现在科研任务很急了,必须要马上动手实验,全给我弄明白、特别是算法! 空洞卷积-可变形卷积-这一个个我都要。 空洞卷积据说在语义分…

【完-网络安全】Windows防火墙及出入站规则

文章目录 防火墙入站和出站的区别域网络、专用网络、公用网络的区别 防火墙 防火墙默认状态一般是出站允许,入站阻止。 入站和出站的区别 入站就是别人来访问我们的主机,也就是正向shell的操作 出站就是反向shell,主机需要主动连接kali&am…

智能指针(3)

目录 可能问题五: 问题分析: 答案格式: shared_ptr的模拟实现 部分1:引用计数的设计(分考点1) 代码实现: 部分2:作为类所必须的部分(分考点2) 代码实现: 部分3:拷贝构造函数…

WPF实现类似网易云音乐的菜单切换

这里是借助三方UI框架实现了,感兴趣的小伙伴可以看一下。 深色模式:​ 浅色模式: ​这里主要使用了以下三个包: MahApps.Metro:UI库,提供菜单导航和其它控件​​​​​​​ 实现步骤:1、使用B…

【JavaEE】——自定义协议方案、UDP协议

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 一:自定义协议 1:自定义协议 (1)交互哪些信息 &…

RuoYi-Vue若依 环境搭建 速成

一、若依简介 RuoYi-Vue 是一个开源的后台管理系统,适用于快速开发企业级应用。该平台由两部分组成:前端和后端。 (1)技术框架 前端技术: Vue.js: 前端框架使用 Vue.js,这是一种流行的JavaScript框架&a…

Python爬虫实战:抓取指定网站数据

一、前言 在互联网时代,数据的价值日益凸显。爬虫技术作为一种获取数据的重要手段,广泛应用于各种场景。本文将通过一个实例,介绍如何使用Python进行网站数据的抓取。 二、环境准备 Python 3.xrequests库BeautifulSoup库 三、代码实现 i…

【UE5】将2D切片图渲染为体积纹理,最终实现使用RT实时绘制体积纹理【第五篇-着色器投影-投射阴影部分】

投射阴影 最初打算将投影内容放在上一篇中,因为实现非常快速简单,没必要单独成篇。不过因为这里面涉及一些问题,我觉得还是单独作为一篇讲一下比较好。 原理 这里要用到的是 Shadow Pass Switch ,它可以为非不透明的材质替换阴影 某些版本…

Python3 接口自动化测试,HTTPS下载文件(GET方法和POST方法)

Python3 接口自动化测试,HTTPS下载文件(GET方法和POST方法) requests-pkcs12 PyPI python中如何使用requests模块下载文件并获取进度提示 1、GET方法 1.1、调用 # 下载客户端(GET)def download_client_get(self, header_all):try:url = self.host + "/xxx/v1/xxx-mod…

【MySQL】索引的机制、使用

在学习索引知识之前,我们可以先了解一下什么是索引。实际上,索引就是数据库中一个或多个列存储的结构,能够支持数据库管理系统在不扫描整张表的情况下也能查询到数据行,能够大大提升查询效率。举个例子,我们想要找到一…

WPF入门_02依赖属性

1、依赖属性主要有以下三个优点 1)依赖属性加入了属性变化通知、限制、验证等功能。这样可以使我们更方便地实现应用,同时大大减少了代码量 2)节约内存:在WinForm中,每个UI控件的属性都赋予了初始值,这样每个相同的控件在内存中都会保存一份初始值。而WPF依赖属性很好地…

upload-labs靶场Pass-13

upload-labs靶场Pass-13 查看源码 $is_upload false; $msg null; if(isset($_POST[submit])){$ext_arr array(jpg,png,gif);$file_ext substr($_FILES[upload_file][name],strrpos($_FILES[upload_file][name],".")1);if(in_array($file_ext,$ext_arr)){$temp_…