当前位置: 首页 > news >正文

python画图|errorbar初探

【1】引言

在不断的学习进程中,关于error的部分不可避免。

我暂时将其粗浅理解为:误差不可避免,因此曲线一定会长出毛毛

基于此,我们先开始认识以下errorbar函数。

【2】官网教程

官网通过下述链接直达:

https://matplotlib.org/stable/gallery/statistics/errorbar.html#sphx-glr-gallery-statistics-errorbar-py

在这里我们看到曲线上有毛毛,非常类似之前设置过的ticks,相关文章点击下述链接直达:

python画图|我的曲线长毛毛了(TickedStroke patheffect)-CSDN博客

为了解读官网教程,我对代码增加了注释。

【3】代码解读

首先引入画图和计算模块:

import matplotlib.pyplot as plt #引入画图模块
import numpy as np #引入计算模块

然后定义变量:

x = np.arange(0.1, 4, 0.5) #定义自变量范围
y = np.exp(-x) #定义因变量范围

之后定义画图,并输出errorbar图:

fig, ax = plt.subplots() #定义要画图
ax.errorbar(x, y, xerr=0.2, yerr=0.4) #定义画errorbar图
plt.show() #输出图形

在这里我们看到ax.errorbar()函数被直接调用,本文的主要研究对象就是该函数,函数具体介绍页面通过下述链接直达:

https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.errorbar.html#matplotlib.axes.Axes.errorbar

这里我们只需要重点关注 Axes.errorbar(x, y, yerr=None, xerr=None, fmt='', ecolor=None这几个参数。

x, y:画图用的自变量和因变量;

yerr, xerr:因变量误差,自变量误差

fmt:本来要画曲线的类型,由点线、实线等多种

ecolor:误差线的颜色,如果不设置就和本来要画的曲线一个颜色。

运行代码的输出图形为:

图1

增加注释后的完整代码为:

import matplotlib.pyplot as plt #引入画图模块
import numpy as np #引入计算模块# example data
x = np.arange(0.1, 4, 0.5) #定义自变量范围
y = np.exp(-x) #定义因变量范围fig, ax = plt.subplots() #定义要画图
ax.errorbar(x, y, xerr=0.2, yerr=0.4) #定义画errorbar图
plt.show() #输出图形

【4】代码修改

【4.1】fmt设置

首先尝试设置曲线的线型,即设置fmt:

ax.errorbar(x, y, xerr=0.2, yerr=0.4,fmt='-.') #定义画errorbar图

运行后的输出图形为:

图2

【4.2】ecolor设置

然后设置误差线的线型,即设置ecolor:

ax.errorbar(x, y, xerr=0.2, yerr=0.4,fmt='-.',ecolor='green') #定义画errorbar图

运行后的输出图形为:

图3

图3输出了预期的图像。

【5】代码完善

从图像观感上看,较大的Y轴误差yerr占据大量的区域,如果显示确实如此,那其实无法改变。

但在学习的进程中,尝试修改yerr的值,观察图像有何变化。

首先将yerr的值改为0.1:

ax.errorbar(x, y, xerr=0.2, yerr=0.1,fmt='-.',ecolor='green') #定义画errorbar图

运行代码后的输出为:

图4

 由图4可见,Y轴方向的误差线确实变短。

下一步给图像增加名称,病危了增加对比把误差线改为品红色:

ax.errorbar(x, y, xerr=0.2, yerr=0.1,fmt='-.',ecolor='m') #定义画errorbar图
ax.set_title('learn-errorbar-aixmls')

此时的输出图像为;

图5

【6】总结

掌握了errorbar()函数的使用技巧。


http://www.mrgr.cn/news/63064.html

相关文章:

  • 【网络】套接字编程——TCP通信
  • 【隐私计算篇】全同态加密应用场景案例(隐私云计算中的大模型推理、生物识别等)
  • PostgreSQL 时间函数操作
  • 识别风险的提示清单
  • vue+element实战
  • ELK之路第四步——整合!打通任督二脉
  • 鸿蒙NEXT开发笔记(九)仿微信聊天App的收发文本消息
  • 无人机救援系统基本组成
  • 选项卡设计与实现
  • Python酷库之旅-第三方库Pandas(183)
  • [数组基础] 0724. 寻找数组的中心下标
  • 机器学习算法之回归算法
  • Java中跳转结构
  • 实系数多项式的运算算法
  • <HarmonyOS第一课>HarmonyOS SDK开放能力简介的课后习题
  • 用示波器如何调方波?
  • 11-Python基础编程之错误和异常
  • HTML 事件
  • 深入理解 Java UUID 五个版本的区别及使用场景
  • PMP–知识卡片--项目经理领导风格
  • Partition架构
  • 荒野大嫖客:救赎 MagicRDR拆包工具简体中文汉化版1.3.6.3
  • Edge 浏览器特别好用的几个插件
  • 【JS学习】04. JS基础语法-函数
  • 18.网工入门篇--------今天介绍下广域网技术
  • Mysql的行锁,改一行锁一行