当前位置:首页>python>一起学Python第103天:Matplotlib 安装详细教程

一起学Python第103天:Matplotlib 安装详细教程

  • 2026-10-11 05:44:32
一起学Python第103天:Matplotlib 安装详细教程
Matplotlib 是 Python 生态中最重要的数据可视化库之一,能够生成高质量的静态图表、动画以及交互式可视化内容。
本文将系统介绍 Matplotlib 的背景知识、安装方式、验证方法及常见问题排查,帮助你在各种环境下顺利完成安装。

一、认识 Matplotlib

Matplotlib 由 John D. Hunter 于 2003 年创建,最初的设计灵感来源于 MATLAB 的绘图语法。经过二十余年的发展,它已成为 Python 数据科学领域不可或缺的基础库,被广泛应用于科学计算、机器学习、金融分析等众多领域。
截至 2026 年 6 月,Matplotlib 的最新稳定版本为 3.10.x(PyPI 上最新为 3.10.8),要求 Python 版本不低于 3.10。
(执行代码放在结尾)

二、安装前的准备工作

2.1 确认 Python 版本

在安装 Matplotlib 之前,首先需要确认本机已安装 Python,且版本满足要求。打开终端(Windows 用户打开命令提示符 CMD 或 PowerShell),执行以下命令:

python --version# 或python3 --version
若输出类似 Python 3.11.x 或 Python 3.12.x 的信息,则满足要求。如果尚未安装 Python,请前往 
Python 官网 下载并安装最新稳定版本。

2.2 确认 pip 可用

pip 是 Python 的官方包管理工具,通常随 Python 一同安装。执行以下命令确认 pip 是否可用:

pip --version# 或pip3 --version
若 pip 未安装,可通过以下命令手动安装:
python -m ensurepip --upgrade

2.3 升级 pip 到最新版本

为了避免因 pip 版本过旧导致的兼容性问题,建议在安装 Matplotlib 之前先将 pip 升级到最新版本:

python -m pip install -U pip

三、安装方式详解

Matplotlib 支持多种安装方式,适用于不同的使用场景。下表对各种方式进行了对比:

安装方式

适用场景

命令

优点

pip 安装

通用场景,最常用

pip install matplotlib

简单快捷,版本最新

conda 安装

Anaconda/Miniconda 环境

conda install matplotlib

依赖管理更完善

虚拟环境安装

项目隔离需求

venv + pip

环境干净,互不干扰

Linux 包管理器

Linux 系统级安装

apt-get / dnf / yum

系统集成度高

源码编译安装

开发/定制需求

下载源码后编译

可定制,适合贡献者

3.1 使用 pip 安装(推荐)

这是最简单、最通用的安装方式,适合绝大多数用户

pip install matplotlib
若希望安装或升级到最新版本,可加上 -U 参数(即 --upgrade):
pip install -U matplotlib
如果在安装过程中遇到从源码编译的情况(通常出现在某些特殊平台),可以添加 --prefer-binary 参数,强制使用预编译的 wheel 包:
pip install --prefer-binary matplotlib
Windows 用户注意:如果系统中同时存在 Python 2 和 Python 3,建议使用 pip3 命令以明确指定 Python 3 环境:
pip3 install matplotlib
通过 conda-forge 社区频道安装(版本通常更新):
conda install -c conda-forge matplotlib

3.3 在虚拟环境中安装(推荐用于项目开发)

使用虚拟环境可以将不同项目的依赖相互隔离,避免版本冲突,是工程实践中的最佳做法。

第一步:创建虚拟环境

# 在项目目录下创建名为 venv 的虚拟环境python -m venv venv

第二步:激活虚拟环境

不同操作系统的激活命令有所不同:

# Windows(CMD)venv\Scripts\activate.bat# Windows(PowerShell)venv\Scripts\Activate.ps1# macOS / Linuxsource venv/bin/activate

激活成功后,命令行提示符前会出现 (venv) 标识。

第三步:在虚拟环境中安装 Matplotlib

pip install matplotlib
第四步:退出虚拟环境
deactivate

3.4 在 Linux 系统上使用包管理器安装

对于使用系统自带 Python 的 Linux 用户,可以通过发行版的包管理器安装 Matplotlib。 需要注意的是,包管理器提供的版本可能不是最新版本。

# Debian / Ubuntusudo apt-get install python3-matplotlib# Fedorasudo dnf install python3-matplotlib# Red Hat / CentOSsudo yum install python3-matplotlib# Arch Linuxsudo pacman -S python-matplotlib

3.5 使用国内镜像加速安装

由于网络原因,直接从 PyPI 下载有时速度较慢。可以使用国内镜像源加速安装:

# 使用清华大学镜像源(临时)pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple# 使用阿里云镜像源(临时 )pip install matplotlib -i https://mirrors.aliyun.com/pypi/simple/# 永久设置默认镜像源(推荐 )pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

四、验证安装是否成功

安装完成后,通过以下方式验证 Matplotlib 是否安装成功。

4.1 查看版本号

在终端或 Python 交互式环境中执行:

import matplotlibprint(matplotlib.__version__)

4.2 查看安装路径

import matplotlibprint(matplotlib.__file__)

4.3 绘制一张测试图

最直观的验证方式是运行一段绘图代码,观察是否能正常显示图表:

import matplotlib.pyplot as pltimport numpy as npx = np.linspace(0, 10, 100)y = np.sin(x)plt.plot(x, y, color='steelblue', linewidth=2)plt.title('安装验证:Matplotlib 正常运行!')plt.xlabel('x 轴')plt.ylabel('sin(x)')plt.grid(True)plt.show()

使用 pip 或 conda 安装时,以下强制依赖项会被自动安装,无需手动处理。 了解这些依赖有助于排查问题:

依赖包

最低版本要求

作用说明

Python

>= 3.10

运行环境

NumPy

>= 1.23

数值计算基础

contourpy

>= 1.0.1

等高线绘制

cycler

>= 0.10.0

样式循环控制

python-dateutil

>= 2.7

日期时间处理

fontTools

>= 4.22.0

字体处理

kiwisolver

>= 1.3.1

约束求解(布局)

packaging

>= 20.0

版本号解析

Pillow

>= 8.0

图像处理

pyparsing

>= 3.0

数学表达式解析

图一代码

import osimport matplotlibimport matplotlib.pyplot as pltimport matplotlib.font_manager as fmimport numpy as np# ============================================================# 1. 中文字体自动配置函数# ============================================================def setup_chinese_font():    """    自动配置 Matplotlib 中文字体。    会优先从常见中文字体中寻找当前环境已安装的字体。    """    # 常见中文字体候选列表    candidate_fonts = [        # Windows        'Microsoft YaHei',        'SimHei',        'SimSun',        # macOS        'PingFang SC',        'Heiti SC',        'Songti SC',        'Arial Unicode MS',        # Linux        'Noto Sans CJK SC',        'Noto Serif CJK SC',        'Source Han Sans SC',        'Source Han Serif SC',        'WenQuanYi Micro Hei',        'WenQuanYi Zen Hei'    ]    # 获取当前 Matplotlib 能识别到的字体名称    available_fonts = set(font.name for font in fm.fontManager.ttflist)    # 查找可用中文字体    for font in candidate_fonts:        if font in available_fonts:            plt.rcParams['font.sans-serif'] = [font]            plt.rcParams['axes.unicode_minus'] = False            print(f'已启用中文字体: {font}')            return font    # 如果没找到中文字体    plt.rcParams['axes.unicode_minus'] = False    print('未找到常见中文字体。')    print('当前环境可能没有安装中文字体,因此中文可能显示为方框或乱码。')    print()    print('解决方案:')    print('1. Linux/Jupyter/Docker 推荐安装:')    print('   sudo apt update && sudo apt install fonts-noto-cjk')    print()    print('2. Windows 推荐使用:Microsoft YaHei 或 SimHei')    print()    print('3. macOS 推荐使用:PingFang SC')    print()    print('4. 如果无法安装系统字体,可以下载 NotoSansCJK 字体文件后用 font_path 指定。')    return None# ============================================================# 2. 启用中文字体# ============================================================used_font = setup_chinese_font()# ============================================================# 3. 准备数据# ============================================================x = np.linspace(0, 10, 300)y1 = np.sin(x)y2 = np.cos(x)y3 = np.sin(x) * np.cos(x)# ============================================================# 4. 创建画布# ============================================================fig, ax = plt.subplots(figsize=(9, 6), dpi=120)# ============================================================# 5. 绘制曲线# ============================================================ax.plot(    x,    y1,    color='#FF5733',    linestyle='-',    linewidth=2,    label='正弦波 sin(x)')ax.plot(    x,    y2,    color='#1E90FF',    linestyle='--',    linewidth=2,    label='余弦波 cos(x)')ax.plot(    x,    y3,    color='#2E8B57',    linestyle='-.',    linewidth=2,    label='复合波 sin(x) × cos(x)')# ============================================================# 6. 图表修饰# ============================================================ax.set_title(    '三角函数波形图',    fontsize=18,    fontweight='bold',    pad=15)ax.set_xlabel(    '时间 / 秒',    fontsize=13)ax.set_ylabel(    '振幅',    fontsize=13)ax.legend(    loc='upper right',    fontsize=10,    frameon=True,    shadow=True)ax.grid(    True,    linestyle=':',    linewidth=1,    alpha=0.6)# ============================================================# 7. 坐标轴范围和刻度# ============================================================ax.set_xlim(0, 10)ax.set_ylim(-1.5, 1.5)ax.tick_params(    axis='both',    labelsize=11)# ============================================================# 8. 添加说明文字# ============================================================font_info = used_font if used_font else '未找到中文字体'ax.text(    0.02,    0.02,    f'当前字体:{font_info}',    transform=ax.transAxes,    fontsize=10,    color='gray',    verticalalignment='bottom')# ============================================================# 9. 自动调整布局# ============================================================plt.tight_layout()# ============================================================# 10. 保存图片# ============================================================output_file = 'trig_functions_chinese_demo.png'plt.savefig(    output_file,    dpi=300,    bbox_inches='tight')print(f'图片已保存为: {os.path.abspath(output_file)}')# ============================================================# 11. 显示图片# ============================================================plt.show()

🎯 今日金句: "The secret of getting ahead is getting started." (取得领先的秘诀,就在于开始行动。) —— 马克·吐温 (Mark Twain)

最新文章

随机文章