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

一周学会Matplotlib3 Python 数据可视化-绘制自相关图

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

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

课程介绍

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

绘制自相关图

自相关图(Autocorrelation Plot)是时间序列分析中重要的可视化工具,用于展示时间序列与其自身滞后版本之间的相关性。它有助于识别数据中的季节性、周期性和随机性模式。

自相关图基本概念

  • 自相关系数:衡量时间序列与其滞后版本之间相关性的指标

  • 滞后值 (Lag):时间序列向后移动的时间单位数

  • 置信区间:表示自相关系数是否显著区别于零的统计边界

Matplotlib3 绘制自相关图需要用到statsmodels库。

statsmodels‌ 是一个专注于统计建模与计量经济分析的Python库,提供线性回归、时间序列分析、广义线性模型、假设检验等核心功能,强调模型的统计解释性(如p值、置信区间)。

pip install statsmodels -i https://pypi.tuna.tsinghua.edu.cn/simple

plot_acf()statsmodels 库中用于绘制时间序列自相关函数(ACF)的核心工具,广泛应用于时间序列分析(如ARIMA建模、白噪声检验、随机游走识别等)。以下是其参数的详细解析及示例说明:

statsmodels.graphics.tsaplots.plot_acf(x, ax=None, lags=None, alpha=0.05, use_vlines=True, unbiased=False, fft=False, title='Autocorrelation', zero=True, vlines_kwargs=None, **kwargs
)

参数详解表

参数类型默认值说明注意事项
xarray_like-时间序列数据(一维数组)必需参数,不支持含NaN的序列 24
lagsint 或 array_likeNone(自动取len(x)指定计算的滞后阶数若为整数,生成np.arange(lags);若为数组,直接使用指定滞后点 26
alphafloat0.05置信区间的显著性水平设为None则不显示置信区间;alpha=0.05 表示95%置信区间 12
use_vlinesboolTrue是否用垂直线+标记绘制ACF若为False,仅绘制标记(如圆点)27
unbiasedboolFalse自协方差计算方式True:分母用n-k(无偏估计);False:分母用n(有偏估计)25
fftboolFalse是否用FFT算法计算ACF对长序列加速计算,但可能牺牲精度 2
titlestr'Autocorrelation'图表标题支持自定义标题文本 27
zerobool`True``是否包含0阶滞后(恒为1)通常保留,体现序列与自身的完全相关 24
axMatplotlib AxesNone指定绘图的Axes对象用于多子图布局,不指定则创建新画布 27
vlines_kwargsdictNone垂直线样式参数{"color": "red", "linewidth": 0.8} 2
**kwargs--传递给matplotlib.plot()的样式参数co

我们来看一个示例:

import numpy as np
import matplotlib.pyplot as plt
from statsmodels.graphics.tsaplots import plot_acf# 生成示例时间序列数据
np.random.seed(42)
n = 200  # 数据点数量# 创建具有季节性的时间序列
seasonal = np.sin(np.linspace(0, 10 * np.pi, n))
trend = np.linspace(0, 5, n)
noise = np.random.normal(0, 0.5, n)
data = trend + seasonal + noise# 创建图形
plt.figure(figsize=(12, 8), dpi=100)# 绘制时间序列
plt.subplot(2, 1, 1)
plt.plot(data, color='royalblue', linewidth=2)
plt.title('原始时间序列', fontsize=14)
plt.xlabel('时间点', fontsize=12)
plt.ylabel('值', fontsize=12)
plt.grid(True, linestyle='--', alpha=0.7)# 绘制自相关图
plt.subplot(2, 1, 2)
plot_acf(data, lags=40, alpha=0.05, color='darkgreen',title='自相关图 (ACF)', ax=plt.gca(),vlines_kwargs={'colors': 'darkgreen'})
plt.xlabel('滞后阶数 (Lags)', fontsize=12)
plt.ylabel('自相关系数', fontsize=12)
plt.grid(True, linestyle='--', alpha=0.7)
plt.ylim(-1.1, 1.1)plt.tight_layout()
plt.show()

http://www.lryc.cn/news/623086.html

相关文章:

  • mysql使用group by的时候想显示没有参与聚合的字段怎么办
  • 软考 系统架构设计师系列知识点之杂项集萃(125)
  • 【JavaEE】(13) Spring Web MVC 入门
  • 深度解码格行无缝切网引擎:40%延迟降低背后的多网智能切换架构
  • [ai-agent]环境简介之沙盒e2b vs daytona
  • 海康机器人3D相机的应用
  • qsort实现数据排序
  • 零知开源——基于STM32F407VET6的TCS230颜色识别器设计与实现
  • 启发式合并 + 莫队 恋恋的心跳大冒险
  • 【机器学习深度学习】OpenCompass:支持的开源评估数据集及使用差异
  • 告别重复纹理:用Substance Designer构建UE5程序化地貌材质系统
  • SysTick寄存器(嘀嗒定时器实现延时)
  • EP1C12F324I7N Altera Cyclone FPGA
  • [创业之路-550]:公司半年度经营分析会 - 解决方案汇总
  • Vue2.x核心技术与实战(一)
  • Java 学习笔记(基础篇3)
  • 嵌入式硬件篇---电源电路
  • php版的FormCreate使用注意事项
  • 从频繁告警到平稳发布:服务冷启动 CPU 风暴优化实践00
  • Flow-GRPO:通过在线 RL 训练 Flow matching 模型
  • 【OpenGL】LearnOpenGL学习笔记10 - 平行光、点光源、聚光灯
  • 2020/12 JLPT听力原文 问题二 2番
  • CSDN部分内容改为视频转到B站-清单
  • Flink Stream API 源码走读 - print()
  • B3865 [GESP202309 二级] 小杨的 X 字矩阵(举一反三)
  • 矩阵链相乘的最少乘法次数(动态规划解法)
  • 深入了解 swap:作用、局限与分区建立
  • Hadoop面试题及详细答案 110题 (16-35)-- HDFS核心原理与操作
  • 鸿蒙应用开发和Vue网页开发中生命周期的区别
  • (论文速读)ViDAR:视觉自动驾驶预训练框架