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

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

课程介绍

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

绘制误差条形图

误差条形图是数据可视化中展示数据不确定性或变异性的重要工具。Matplotlib提供了强大的功能来创建各种类型的误差条形图,包括对称误差、非对称误差、水平误差条等。

plt.errorbar() 是 Matplotlib 中用于绘制带误差线的数据点的核心函数,常用于科学可视化中展示数据的不确定性。以下是该方法的详细解析:

plt.errorbar(x, y, yerr=None, xerr=None, fmt='', ecolor=None, elinewidth=None, capsize=None, barsabove=False, lolims=False, uplims=False, xlolims=False, xuplims=False, errorevery=1, capthick=None, **kwargs)

必需参数

参数类型说明
xarray数据点的 x 坐标值
yarray数据点的 y 坐标值

🔍 误差线控制参数

  1. 误差方向

参数默认值说明
yerrNoney方向的误差值,支持多种格式: - 标量:所有点使用相同误差值 - 一维数组:每个点单独误差值 - 2xN数组:[下误差, 上误差]
xerrNonex方向的误差值(格式同yerr
  1. 误差线样式

参数默认值说明
fmt''数据点标记格式(同plt.plot()格式) 例如:'o-'(圆点连线),'s--'(方形虚线)
ecolorNone误差线颜色(默认与数据点相同)
elinewidthNone误差线宽度(默认1.5)
capsizeNone误差线端帽长度(单位:点)
capthickNone误差线端帽厚度(默认同误差线)
  1. 特殊误差类型

参数默认值说明
lolims/uplimsFalse只显示下/上限的单向误差线
xlolims/xuplimsFalsex方向的单向误差线
barsaboveFalse误差线显示在数据点上方

我们看一个对称误差条形图示例:

import matplotlib.pyplot as plt
import numpy as np
​
# 创建示例数据
categories = ['A', 'B', 'C', 'D', 'E']
values = [23, 45, 56, 32, 67]
errors = [2.5, 3.2, 4.1, 2.8, 3.9]  # 对称误差值
​
plt.figure(figsize=(10, 6))
​
# 绘制条形图并添加误差条
bars = plt.bar(categories, values, color='skyblue', edgecolor='black', alpha=0.8)
plt.errorbar(categories, values, yerr=errors, fmt='none',ecolor='red', elinewidth=2, capsize=8, capthick=2)
​
# 添加数据标签
for bar in bars:height = bar.get_height()plt.text(bar.get_x() + bar.get_width() / 2., height + 1,f'{height:.1f}', ha='center', va='bottom', fontsize=10)
​
# 图表装饰
plt.title('基础对称误差条形图', fontsize=14, pad=20)
plt.xlabel('类别', fontsize=12)
plt.ylabel('测量值', fontsize=12)
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.ylim(0, 80)
plt.tight_layout()
plt.show()

我们在看一个非对称误差条形图示例:

import matplotlib.pyplot as plt
import numpy as np
​
# 创建示例数据
categories = ['A', 'B', 'C', 'D', 'E']
values = [23, 45, 56, 32, 67]
# 非对称误差数据
lower_errors = [1.8, 2.5, 3.0, 2.0, 3.2]  # 下误差
upper_errors = [3.2, 3.8, 5.2, 3.6, 4.6]  # 上误差
asymmetric_errors = [lower_errors, upper_errors]  # 非对称误差格式
​
plt.figure(figsize=(10, 6))
​
# 绘制条形图
bars = plt.bar(categories, values, color='lightgreen', edgecolor='black', alpha=0.8)
​
# 添加非对称误差条
plt.errorbar(categories, values, yerr=asymmetric_errors, fmt='none',ecolor='purple', elinewidth=2, capsize=8, capthick=2)
​
# 添加数据标签
for bar in bars:height = bar.get_height()plt.text(bar.get_x() + bar.get_width() / 2., height + 1,f'{height:.1f}', ha='center', va='bottom', fontsize=10)
​
# 图表装饰
plt.title('非对称误差条形图', fontsize=14, pad=20)
plt.xlabel('类别', fontsize=12)
plt.ylabel('测量值', fontsize=12)
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.ylim(0, 80)
plt.tight_layout()
plt.show()

分组误差条形图示例:

import numpy as np
​
# 创建多组数据
categories = ['Group 1', 'Group 2', 'Group 3', 'Group 4']
men_means = [22, 30, 35, 28]
women_means = [25, 32, 30, 35]
men_errors = [1.8, 2.5, 3.0, 2.5]
women_errors = [2.2, 2.8, 2.5, 3.0]
​
x = np.arange(len(categories))  # 标签位置
width = 0.35  # 条形宽度
​
plt.figure(figsize=(12, 7))
​
# 绘制男性组条形图
rects1 = plt.bar(x - width / 2, men_means, width,label='男性', color='royalblue', alpha=0.8,yerr=men_errors, error_kw=dict(elinewidth=2, ecolor='darkblue', capsize=6))
​
# 绘制女性组条形图
rects2 = plt.bar(x + width / 2, women_means, width,label='女性', color='lightcoral', alpha=0.8,yerr=women_errors, error_kw=dict(elinewidth=2, ecolor='darkred', capsize=6))
​
​
# 添加数据标签
def autolabel(rects):"""在条形图上方附加文本标签,显示条形高度"""for rect in rects:height = rect.get_height()plt.annotate(f'{height:.1f}',xy=(rect.get_x() + rect.get_width() / 2, height),xytext=(0, 3),  # 3点垂直偏移textcoords="offset points",ha='center', va='bottom', fontsize=10)
​
​
autolabel(rects1)
autolabel(rects2)
​
# 图表装饰
plt.title('分组误差条形图(按性别)', fontsize=14, pad=20)
plt.xlabel('实验组', fontsize=12)
plt.ylabel('平均得分', fontsize=12)
plt.xticks(x, categories)
plt.legend(loc='upper right', frameon=True)
plt.grid(axis='y', linestyle='--', alpha=0.5)
plt.ylim(0, 45)
plt.tight_layout()
plt.show()

水平误差条形图:

import matplotlib.pyplot as plt
import numpy as np
​
# 创建水平数据
countries = ['挪威', '德国', '加拿大', '美国', '荷兰']
gold_medals = [16, 12, 11, 9, 8]
errors = [1.2, 0.9, 1.1, 0.8, 0.7]  # 水平误差
​
plt.figure(figsize=(10, 6))
​
# 绘制水平条形图
bars = plt.barh(countries, gold_medals, color='gold', edgecolor='darkorange', height=0.7, alpha=0.9)
​
# 添加水平误差条
plt.errorbar(gold_medals, countries, xerr=errors, fmt='none',ecolor='darkred', elinewidth=2, capsize=6, capthick=2)
​
# 添加数据标签
for bar in bars:width = bar.get_width()plt.text(width + 0.5, bar.get_y() + bar.get_height() / 2,f'{width:.0f}', ha='left', va='center', fontsize=10)
​
# 图表装饰
plt.title('冬奥会金牌数(含不确定性)', fontsize=14, pad=20)
plt.xlabel('金牌数量', fontsize=12)
plt.ylabel('国家', fontsize=12)
plt.xlim(0, 20)
plt.grid(axis='x', linestyle='--', alpha=0.7)
plt.tight_layout()
plt.show()

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

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

相关文章

JVM垃圾回收器

垃圾回收算法标记-复制缺点:内存利用率低,有一块区域无法使用。标记-清除缺点:1. 效率问题 (如果需要标记的对象太多,效率不高)2. 空间问题(标记清除后会产生大量不连续的碎片)标记-整理分代收集根据对象存…

科研工具的一些注意事项

Origin Origin导入数据之后,可以考虑 [删除数据连接器…] 导入数据之后,删除数据连接,这样当原来的文件移动之后,就不影响origin文件里面的数据。不然就会出现空白数据:当然,没有数据了也可以加载出来&…

美国服务器环境下Windows容器工作负载智能弹性伸缩

在北美数据中心加速数字化转型的今天,企业客户日益重视Windows容器工作负载的智能化管理。本文将深入探讨基于Azure Stack HCI(混合云基础设施)的弹性伸缩方案如何突破传统资源调度瓶颈,通过分析指标收集、策略配置、混合云联动三…

欧姆龙CP系列以太网通讯实现上位机与触摸屏监控

一、行业痛点在现代工业生产中,自动化生产线的控制系统的高效性与智能化程度对生产效率和产品质量有着至关重要的影响。然而,许多传统工业生产线中使用的欧姆龙CP系列系列PLC以太网模块,由于自身设计原因,并未配备以太网接口&…

【大语言模型 00】导读

【大语言模型00】导读:你的LLM全栈工程师进阶之路关键词:大语言模型、LLM、Transformer、深度学习、AI工程化、全栈开发、技术路线图摘要:这是一份完整的大语言模型学习指南,涵盖从数学基础到商业落地的200篇深度文章。无论你是AI…

Business Magic

题目描述There are n stores located along a street, numbered from 1 to n from nearest to farthest. Last month, the storek had a net profit of rk . If rk is positive, it represents a profit of rk dollars; if rk is negative, it represents a loss of −rk dolla…

在ubuntu系统上离线安装jenkins的做法

作者:朱金灿 来源:clever101的专栏 1.安装java环境和下载war包: Jenkins 依赖于 Java 环境(OpenJDK 11 或更高版本): # 安装OpenJDK 11和字体依赖 sudo dpkg -i openjdk-11-jre-headless_*.deb fontconfi…

图像相似度算法汇总及Python实现

下面整理了一些图像相似度算法,可根据不同的需求选择不同的算法,对每种算法进行了简单描述并给出Python实现: 1. 基于像素的算法: (1).MSE(Mean Squared Error):均方误差,通过计算两幅图像对应像素值差的平…

IO流与单例模式

单例模式 单例模式是指一个类只能有一个对象。 饿汉模式 在单例模式下,在程序开始(main函数运行前)的时候创建一个对象,这之后就不能再创建这个对象。 class HungryMan { public:static HungryMan* getinstance(){return &ins…

Java设计模式之依赖倒置原则使用举例说明

示例1:司机驾驶汽车 问题场景:司机类直接依赖奔驰车类,新增宝马车需修改司机类代码。 // 未遵循DIP class Benz { public void run() { /*...*/ } } class Driver { public void drive(Benz benz) { benz.run(); } } // 遵循DIP:…

【Docker】openEuler 使用docker-compose部署gitlab-ce

docker-compose配置 services:gitlab:image: gitlab/gitlab-ce:latestcontainer_name: gitlabrestart: alwayshostname: gitlab.example.comenvironment:GITLAB_OMNIBUS_CONFIG: |# Add any other gitlab.rb configuration here, each on its own lineexternal_url https://gi…

ElasticSearch 父子文档使用简记

一. ES parent-child 文档简介 ES 提供了类似数据库中 Join 联结的实现,可以通过 Join 类型的字段维护父子关系的数据,其父文档和子文档可以单独维护。 二. 父子文档的索引创建与数据插入 ES 父子文档的创建可以分为下面三步: 创建索引 M…

【Linux】编辑器vim的使用

目录 1. vim的基本概念 2. vim的基本使用 3. vim命令模式操作 3.1 移动光标 3.2 删除 3.3 复制 3.4 替换 3.5 撤销 3.6 更改 3.7 跳转 4. vim底行模式操作 4.1 列出行号 4.2 跳到文件中的某行 4.3 查找字符 4.4 保存文件 4.5 离开vim 1. vim的基本概念 Vim&…

《零基础掌握飞算Java AI:核心概念与案例解析》

前引:飞算科技是一家专注于企业级智能化技术服务的公司,核心领域包括AI、大数据、云计算等。其Java AI解决方案主要面向企业级应用开发,提供从数据处理到模型部署的全流程支持!飞算Java AI是一款基于人工智能技术的Java开发辅助工…

Chrome腾讯翻译插件transmart的安装

文章目录一、官网地址二、安装过程1. 下载插件2. 解压crx3, chrome安装三、如何使用一、官网地址 腾讯翻译插件官网 二、安装过程 1. 下载插件 点击上面的官网地址,下拉到如图所示chrome插件位置,点击立即下载 2. 解压crx 从压缩文件中解压出crx文…

IOMMU的2级地址翻译机制及多级(2~5)页表查找

IOMMU的2级地址翻译机制及多级(2~5)页表查找 摘要:IOMMU是现代计算机系统中用于I/O设备(如GPU、NIC、网络接口卡)的地址翻译和保护机制,类似于CPU的MMU(Memory Management Unit),但专为设备DMA(Direct Memory Access,直接内存访问)设计。它支持虚拟化环境(…

C++STL标准模板库详解

一、引言STL(Standard Template Library)是 C 标准库的核心组成部分,其中容器(Containers) 作为数据存储的基础组件,为开发者提供了丰富的数据结构选择。本文将聚焦 STL 容器的核心类型,结合具体…

神经网络 常见分类

📚 神经网络的常见分类方式可以从不同角度来划分,以下是几种主流思路,帮你快速梳理清晰:1️⃣ 按网络结构分类前馈神经网络(Feedforward Neural Network, FNN) 数据从输入层→隐藏层→输出层单向传递&#…

生产环境Redis缓存穿透与雪崩防护性能优化实战指南

生产环境Redis缓存穿透与雪崩防护性能优化实战指南 在当下高并发场景下,Redis 作为主流缓存组件,能够极大地提升读写性能,但同时也容易引发缓存穿透、缓存击穿及缓存雪崩等问题,导致后端依赖数据库的请求激增,系统稳定…

【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)

🔥个人主页:艾莉丝努力练剑 ❄专栏传送门:《C语言》、《数据结构与算法》、C语言刷题12天IO强训、LeetCode代码强化刷题、洛谷刷题、C/C基础知识知识强化补充、C/C干货分享&学习过程记录 🍉学习方向:C/C方向 ⭐️人…