Matplotlib 是 Python 最流行的数据可视化库,其核心是基于 面向对象 的绘图架构,提供从简单折线图到复杂三维图形的绘制能力。它模仿 MATLAB 的绘图风格,但更灵活且开源,广泛应用于学术研究、工程分析和商业报告。
核心原理 1. 三层架构 Backend 层:负责底层渲染(如生成图像文件或显示窗口),支持多种输出格式(PNG、PDF、SVG 等)。 Artist 层:控制图形元素(线条、文本、坐标轴等),允许精细化调整。 Scripting 层(pyplot 模块):提供类似 MATLAB 的快捷接口,适合快速绘图。 2. 核心对象 Figure:画布(类似一张纸),可包含多个子图。 Axes:子图(坐标系),实际绘制图形的区域(如折线图、柱状图)。 Axis:坐标轴(x 轴、y 轴),控制刻度、标签和范围。 3. 绘图流程 创建 Figure 和 Axes 对象。 调用绘图方法(如 plot()、scatter())。 自定义样式(颜色、标签、标题)。 显示或保存图像。 基础用法 1. 快速绘图(pyplot 模式)import matplotlib.pyplot as plt import numpy as np # 生成数据 x = np.linspace(0, 2*np.pi, 100) y = np.sin(x) # 绘制折线图 plt.plot(x, y, color="red", linestyle="--", label="sin(x)") plt.title("Basic Line Plot") plt.xlabel("X-axis") plt.ylabel("Y-axis") plt.legend() plt.grid(True) plt.show()
python
运行
123456789101112131415 2. 面向对象模式(推荐)# 创建 Figure 和 Axes 对象 fig, ax = plt.subplots(figsize=(8, 4)) # 绘制散点图 x = np.random.randn(100) y = x + np.random.randn(100) * 0.5 ax.scatter(x, y, color="blue", alpha=0.6, label="Data Points") # 添加回归线 m, b = np.polyfit(x, y, 1) ax.plot(x, m*x + b, color="red", label="Trend Line") # 自定义样式 ax.set_title("Scatter Plot with Trend Line") ax.set_xlabel("X") ax.set_ylabel("Y")
python
运行
123456789101112131415
Matplotlib原理、用法及优势详解
于 2025-03-24 08:47:48 发布 · 635 阅读