前言

这是Python数据可视化的系列短篇,针对初级和中级用户,将理论和示例代码相结合,使用matplotlib, seaborn, plotly等工具创建不同主题的图表。

本文主题是如何在图表中显示误差。

import osimport warnings
import requests
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.tsa.arima_model import ARIMA%matplotlib inline
plt.style.use("fivethirtyeight")warnings.filterwarnings("ignore")

PS:如有需要Python学习资料的小伙伴可以加下方的群去找免费管理员领取

可以免费领取源码项目实战视频PDF文件

1. 显示测量误差

科学测量往往存在误差,准确的报告误差跟报告测量结果同样重要。

测量误差(也称为观察误差)是测量值和真实值之间的差异,包括随机误差(任何实验中都会自然发生的误差)和系统误差(由影响所有测量的错误校准的仪器引起)。

举一个例子,假设您正在测量100个学生的体重,有的学生穿较多的衣服,导致重500克,有的学生可能脱水导致轻200克,这些都是测量误差。事实上所有收集的样本都会存在误差,大多数情况下它们不可避免。所以在数据可视化中,有效显示这些错误可以传达更完整的信息。

在matplotlib中通过调用ax.errorbar()创建误差图(errorbar)。误差图由一个点和穿过这个点的线段组成,点对应测量结果,线段代表测量误差。

# 设置随机数种子
np.random.seed(123)# 观测值的数量
n_observations = 30
x = np.arange(n_observations)# 虚拟测量值
y = np.sin(x) + np.random.randn(n_observations)# 测量误差,假设误差服从均匀分布
errors = np.random.randint(1, 3, n_observations)# 调用ax.errorbar接口,提供3个数组,x, y, yerr
# fmt控制点和线段的样式,跟ax.plot的fmt相同
# color: 控制点的颜色
# ecolor: 代表误差的线段的颜色
# elinewidth: 代表误差的线段的大小
fig, ax = plt.subplots(figsize=(10, 7))
ax.errorbar(x, y, yerr=errors, fmt="o", color="black",ecolor="lightgray", elinewidth=3)

2. 显示预测误差

在机器学习领域,回归模型和时间序列模型用于预测,模型会同时生成预测误差(所谓置信区间),在可视化预测结果时,通常要求显示预测值和预测区间,这可以通过ax.plot()和ax.fill_between()实现。

接下来使用一个真实的案例说明,先从蜂鸟数据获取黄金价格,然后用ARIMA(自回归整合移动平均)预测未来30天的价格,可视化预测结果。

# 从蜂鸟数据下载黄金价格
params = {"symbol": "XAUUSD",  # 现货黄金ID"start_date": "2010-01-01","end_date": "2020-08-05","apikey": os.getenv("TROCHIL_API")  # 在蜂鸟数据官网注册获取API密钥
}
resp = requests.get("https://api.trochil.cn/v1/forex/history", params)
data = pd.DataFrame.from_records(resp.json()["data"])
data["datetime"] = pd.to_datetime(data["datetime"])
data.set_index("datetime", inplace=True)# 创建ARMIA模型,预测未来30天价格走势
model = ARIMA(data.close, order=(1, 1, 1))
results = model.fit()
fc, errors, conf = results.forecast(steps=30, alpha=0.05)
fc_df = pd.DataFrame({"forecast": fc,"lower": conf[:, 0],"upper": conf[:, 1]
}, index=pd.date_range("2020-08-06", periods=30))# 可视化预测结果,包括点预测值和预测区间
# 预测区间包括置信下限和上限,代表真实值可能落入的范围
# 调用ax.plot显示点预测值,ax.fill_between显示预测区间
data_since_2020 = data["2020":]
fig, ax = plt.subplots(figsize=(12, 7))
data_since_2020.close.plot(ax=ax, label="Historical Prices")
ax.plot(fc_df.index, fc_df.forecast, label="Forecast Prices")
ax.fill_between(fc_df.index, fc_df.lower, fc_df.upper, color="gray", alpha=0.3, label="Forecast Interval")
ax.set_title("Plot Forecast Errors")
ax.legend(loc="upper left")
<matplotlib.legend.Legend at 0x7fbfa348d9a0>

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

作者:蜂鸟数据Trochil

什么是误差图?今天带你了解可视化误差图,让数据一目了然相关推荐

  1. python使用matplotlib可视化阶梯图、使用step函数可视化阶梯图、可视化时间序列数据的波动周期和规律

    python使用matplotlib可视化阶梯图.使用step函数可视化阶梯图.可视化时间序列数据的波动周期和规律 目录

  2. python使用matplotlib可视化折线图、在可视化图像中同时绘制多条折线图

    python使用matplotlib可视化折线图.在可视化图像中同时绘制多条折线图 目录 python使用matplotlib可视化折线图.在可视化图像中同时绘制多条折线图

  3. 卷积神经网络特征图可视化热图可视化

    文章目录 前言 一.可视化特征图 二.热力图可视化(图像分类) 总结 前言 使用pytorch中的钩子将特征图和梯度勾出来,从而达到可视化特征图(featuremap)和可视化热图(heatmap)的 ...

  4. 用计算机图形学画字母,r 语言快速出图——单因素方差带字母显著性标记

    相信带字母的显著性标记图大家都不会陌生,在许多文献中多可以看到类似的图.首先来看看它长啥样 用不同的字母来表示显著性,字母相同不显著 不管是在月末组会汇报,还是自己写文章过程中都会用到.今天就一起来学 ...

  5. R绘制带显著性标记的热图

    今天小编接着来介绍R绘制带有显著性的热图. 测试数据文件: ①table1.txt ②col_group.txt ③row_group.txt 1.导入pheatmap包,读取数据: #导入包 lib ...

  6. R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(添加箱图、带缺口的小提琴图、小提琴图)实战

    R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(添加箱图.带缺口的小提琴图.小提琴图)实战 目录 R语言使用ggplot2包geom_jit ...

  7. sklearn基于make_scorer函数为Logistic模型构建自定义损失函数并可视化误差图(lambda selection)和系数图(trace plot)+代码实战

    sklearn基于make_scorer函数为Logistic模型构建自定义损失函数并可视化误差图(lambda selection)和系数图(trace plot)+代码实战 # 自定义损失函数 i ...

  8. 影像组学视频学习笔记[44(End)]-带95%置信区间的折线图、Li‘s have a solution and plan.

    作者:北欧森林 链接:https://www.jianshu.com/p/971eeaa03ec9 来源:简书,已获授权转载 本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(44)主要 ...

  9. 在origin 2018中同时画两个图,带errorbar和不带errorbar两种情况

    在origin 2018中同时画两个图,带errorbar和不带errorbar两种情况 在一个图层里同时画两幅图 两幅图坐标可不一致 ①在当前图层中,选中图层左上角的 1 标志 ②右键 1 →图层内 ...

最新文章

  1. QT制作窗口切换的小程序
  2. 如何用TensorFlow在安卓设备上实现深度学习推断
  3. python 多条件 选择 算法_Python 子集的算法优化; 找寻一个list的所有满足特定条件的子集...
  4. java中如何实现两个值互换
  5. Windows 08R2 IIS网站架设
  6. 成功解决sklearn\cross_validation.py:41: DeprecationWarning: This module was deprecated in version 0.18 i
  7. c语言fin和fout用法,fin,fout提示第一次调用
  8. Java :反射详解
  9. python定义16进制数组,十六进制字符串到python中的字节数组
  10. Mac 安装 MySQL
  11. 实时数据库与时序数据库
  12. 3dmax2021渲染器下载安装教程VRay4.3渲染器下载安装教程
  13. 声卡接口Line in、Line out、Mic in和Speak out
  14. iphone计算机同样答案,学会这4招,iPhone搭配Windows电脑一样好用
  15. Word文字的三种隐藏方法
  16. 显卡算力排行_RTX3090 时代最新GPU选购指南:哪款显卡配得上我的炼丹炉?
  17. C#实现贝塞尔曲线的算法
  18. 全网最新-扶风视频解析计费系统,2022优化免授权版(赠接口轮询插件)
  19. php date函数时间不对,PHP Date / Time 日期和时间 函数和时间相差8小时解决办法
  20. SLAM练习题(七)—— 对极约束

热门文章

  1. 0717 抽象类/接口/异常/==-equals()/搜索字符串/包装类型(统计字符数)/hashCode()/StringBuffer/pingSQL/2018年美式日历
  2. 模拟停车场管理C语言代码
  3. 2023中山大学计算机考研信息汇总
  4. 关关难过关关过——EPICS base 安装和利用makeBaseApp.pl建立一个IOC实例
  5. Linux 性能优化之 IO 子系统
  6. 物业管理app软件开发功能
  7. 使用 Amazon EMR 构建您的数据分析平台
  8. ArcEngine图层属性查询
  9. 博丽灵梦的小游戏(dp+快读)
  10. 5g局域网传输速度_5G 内网传输速度为什么比2.4G还要慢?