当前位置: 首页 > 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.dtcms.com/a/330423.html

相关文章:

  • 如何用aiohttp实现每秒千次的网页抓取
  • 机器视觉的磁芯定位贴合应用
  • PHP现代化全栈开发:实时应用与WebSockets实践
  • JVM字节码文件结构
  • PHP持久连接与普通连接的区别
  • 【大模型私有化部署】实战部分:Ollama 部署教程
  • 云蝠智能 VoiceAgent:重构物流售后场景的智能化引擎
  • Lua语言程序设计2:函数、输入输出、控制结构
  • 在CentOS系统中怎么查看Apache日志文件
  • Morph Studio-一站式AI视频创作平台
  • 亚马逊品牌权力重构:第三方卖家崛起下的竞争生态与系统性应对框架
  • AI引擎重构数据安全:下一代分类分级平台的三大技术跃迁
  • 从概率填充到置信度校准:GPT-5如何从底层重构AI的“诚实”机制
  • 深入解析 Chrome UI 布局配置的设计思想与实现机制
  • 快速搭建python HTTP Server测试环境
  • 18.13 《3倍效率提升!Hugging Face datasets.map高级技巧实战指南》
  • Docker部署美化SunPanel导航页
  • Keep-Alive 的 “爱情故事”:HTTP 如何从 “短命” 变 “长情”?
  • 【网络】HTTP总结复盘
  • 基于SpringBoot的救援物资管理系统 受灾应急物资管理系统 物资管理小程序
  • 37 C++ STL模板库6-string_view
  • springboot项目不同平台项目通过http接口AES加密传输
  • 深度学习-卷积神经网络CNN-批量归一化 BatchNorm
  • 机器人伴侣的下一站革命:Deepoc具身智能模型赋能情感化交互
  • 入门基础人工智能理论
  • 设计模式-策略模式 Java
  • Node.js 文件系统详解
  • Node.js/Python 实战:封装淘宝商品详情 API 客户端库(SDK)
  • springboot myabtis返回list对象集合,对象的一个属性为List对象
  • easyexcel模板导出Map数据时空值列被下一行列非空数据覆盖