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

一周学会Matplotlib3 Python 数据可视化-绘制面积图(Area)

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

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

课程介绍

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

绘制面积图(Area)

面积图是数据可视化中常用的图表类型,用于展示数据随时间或类别的变化趋势,特别适合表现多个数据系列的累积关系。下面我将详细介绍如何使用 Matplotlib 绘制面积图。

面积图其实是特殊的折线图,只不过是通过plt.fill_between()方法,填充两条曲线之间区域。

plt.fill_between() 是 Matplotlib 中用于填充两条曲线之间区域的函数,常用于可视化置信区间、误差范围或阈值区域。以下是详细解析:

plt.fill_between(x,          # x轴坐标值(数组)y1,         # 第一条曲线的y值(数组)y2=0,       # 第二条曲线的y值(数组或标量,默认为0)where=None, # 条件筛选(布尔数组)interpolate=False, # 是否在交点插值step=None,  # 阶梯填充模式('pre'/'post'/'mid')alpha=None, # 透明度(0-1)color=None, # 填充颜色**kwargs    # 其他Polygon属性(如hatch, edgecolor)
)

我们来看一个基本示例:

import matplotlib.pyplot as plt
import numpy as np# 设置中文字体支持
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号# 创建数据
x = np.linspace(0, 10, 100)
y = np.sin(x) * 0.5 + 1  # 正弦波偏移# 创建图形
plt.figure(figsize=(10, 6))
plt.fill_between(x, y, color="skyblue", alpha=0.4)  # 填充区域
plt.plot(x, y, color="Slateblue", alpha=0.6, linewidth=2)  # 绘制线条# 添加标题和标签
plt.title('基本面积图: 正弦波', fontsize=14, fontweight='bold')
plt.xlabel('时间', fontsize=12)
plt.ylabel('数值', fontsize=12)
plt.grid(True, linestyle='--', alpha=0.7)plt.tight_layout()
plt.show()

我们也可以用plt.stackplot()方法来绘制堆叠面积图,堆叠面积图用于展示多个数据系列的累积关系,每个系列堆叠在前一个系列之上。

plt.stackplot() 是 Matplotlib 中用于创建堆叠面积图的函数,特别适合展示多个数据序列随时间的累积变化以及各部分的比例关系。以下是详细解析:

plt.stackplot(x,                  # x轴坐标值(数组)*args,              # 多个y值序列(每个序列代表一个堆叠层)labels=(),          # 各层的标签(用于图例)colors=None,        # 各层的颜色baseline='zero',    # 基线模式('zero', 'sym', 'wiggle', 'weighted_wiggle')**kwargs            # 其他Polygon属性(alpha, edgecolor等)
)

我们来看一个堆叠面积示例:

import matplotlib.pyplot as plt
import numpy as np# 设置中文字体支持
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号# 创建数据
x = np.arange(0, 10, 0.1)
y1 = np.sin(x) * 0.5 + 1
y2 = np.cos(x) * 0.3 + 0.5
y3 = np.exp(-x / 5) * 1.5# 创建图形
plt.figure(figsize=(10, 6))# 使用stackplot绘制堆叠面积图
plt.stackplot(x, y1, y2, y3,colors=['#FF9999', '#66B2FF', '#99FF99'],alpha=0.8,labels=['产品A', '产品B', '产品C'])# 添加标题和标签
plt.title('产品销售额堆叠面积图', fontsize=14, fontweight='bold')
plt.xlabel('季度', fontsize=12)
plt.ylabel('销售额 (百万)', fontsize=12)
plt.legend(loc='upper left', fontsize=10)
plt.grid(True, linestyle='--', alpha=0.5)plt.tight_layout()
plt.show()

运行效果:

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

相关文章:

  • [C++] Git 使用教程(从入门到常用操作)
  • TDengine IDMP 基本功能(6. 无问智推)
  • TDengine IDMP 基本功能(7. 智能问数)
  • C++11新特性深度解析
  • 【CF】Day127——杂题 (数论 gcd | 数论 gcd | 博弈论 | 二分图判断 | 贪心 + 暴力 / 二分答案 | 数论 gcd + 动态规划)
  • OSG+Qt —— 笔记1 - Qt窗口加载模型(附源码)
  • Mybatis 源码解读-SqlSession 会话源码和Executor SQL操作执行器源码
  • 《Python函数:从入门到精通,一文掌握函数编程精髓》
  • Transformer网络结构解析
  • 《嵌入式 C 语言编码规范与工程实践个人笔记》参考华为C语言规范标准
  • CNN - 卷积层
  • GaussDB数据库架构师修炼(十六) 如何选择磁盘
  • 《算法导论》第 24 章 - 单源最短路径
  • 20250814 最小生成树总结
  • Java 大视界 -- Java 大数据机器学习模型在金融欺诈检测与防范策略制定中的应用(397)
  • 【Demo】AI-ModelScope/bert-base-uncase 模型训练及使用
  • 市面上有没有可以导入自有AI算法模型的低空平台?
  • pytorch学习笔记-Loss的使用、在神经网络中加入Loss、优化器(optimizer)的使用
  • Linux 对 YUM 包的管理
  • HTTPS 工作原理
  • Java使用Apache POI读取Excel文件
  • dkms安装nvidia驱动和多内核支持
  • label studio 服务器端打开+xshell端口转发设置
  • UniApp 中使用 tui-xecharts插件(或类似图表库如 uCharts)
  • 2025年Java大厂面试场景题全解析:高频考点与实战攻略
  • 20道DOM相关前端面试题
  • Java面试场景题大全精简版
  • VSCode打开新的文件夹之后当前打开的文件夹被覆盖
  • 树形DP详解
  • 基于springboot的信息化在线教学平台的设计与实现(源码+论文)