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

Matplotlib 绘图库使用技巧介绍

目录

前言

Matplotlib 简介

快速入门

图形结构解剖

常用绘图函数

子图与布局

单行多列子图:

网格布局:

自定义位置:

样式与标注

中文字体与科学计数

图例、网格、坐标轴

动态图与动画

三维绘图

常见问题与技巧


前言


Matplotlib 是 Python最基础也是最强大的绘图库之一,它是科学计算、数据可视化和工程模拟中最常见的可视化工具。本教程将系统性地介绍 Matplotlib 的用法,从基础的绘图函数,到子图、样式、动画、3D 绘图等高级用法,适合所有希望精通 Python 绘图的人。

Matplotlib 简介

Matplotlib 是一个 Python 2D 绘图库,可以生成出版质量级别的图形。

  •  它可以与 NumPy、Pandas、SciPy 配合使用
  •  默认画布是静态图(与 MATLAB 类似)
  •  支持动态图(matplotlib.animation)

  

安装方式:

pip install matplotlib

导入:

import matplotlib.pyplot as plt

快速入门

绘制正选函数,如下所示。

import numpy as np
import matplotlib.pyplot as pltx = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)plt.plot(x, y)
plt.title('正弦函数')
plt.xlabel('x')
plt.ylabel('sin(x)')
plt.grid(True)
plt.show()

图形结构解剖

Matplotlib 绘图的底层逻辑分为三个核心对象:

你可以使用面向对象方式明确控制:

fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('对象式绘图')

常用绘图函数

  • plot() 折线图(默认)
  • scatter() 散点图
  • bar() 柱状图
  • hist() 直方图  
  • boxplot() 箱型图 
  • fill_between() 区域图
  • imshow() 图像显示(灰度图)
  • contour() 等高线

  

子图与布局

单行多列子图:

fig, axs = plt.subplots(1, 3, figsize=(12, 4))

网格布局:

fig, axs = plt.subplots(2, 2)
axs[0, 0].plot(x, y)
axs[1, 1].bar([1,2,3], [3,4,5])

自定义位置:

from matplotlib.gridspec import GridSpec

样式与标注

 线型:'-', '--', ':'
  
 颜色:'r', 'g', '#3366cc'
  
 标记:'o', '^', 's'
  

plt.plot(x, y, linestyle='--', color='red', marker='o')

中文字体与科学计数

中文显示:

plt.rcParams['font.family'] = 'SimHei'  # 或 'Microsoft YaHei'

科学计数法:

ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))

图例、网格、坐标轴

plt.legend(loc='best')
plt.grid(True)
plt.xlim(0, 10)
plt.ylim(-1, 1)

动态图与动画

使用 `FuncAnimation`:

from matplotlib.animation import FuncAnimation

适用于波动、物理模拟、实时数据更新等场景。

三维绘图

使用 `mpl_toolkits.mplot3d`:

from mpl_toolkits.mplot3d import Axes3D
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z)

常见问题与技巧

  • 图像太小?试试 figsize=(12,6)

  

  • 中文乱码?加上 plt.rcParams['font.family']

  

  • 动画失效?确认调用 plt.show() 或保存 ani.save()

  

相关文章:

  • Python 数据分析与可视化 Day 1 - Pandas 数据分析基础入门
  • day037-openssh服务与http协议
  • 视频相似度检测算法(带课设报告)
  • GNSS介绍
  • 【AI编程】第3期,针对AI生成的改枪码列表创建对应的数据库表
  • 50-Oracle awr报告生成-实操
  • Promise静态方法 race
  • LangGraph--结构化输出(.with_structured_output() 方法)
  • 【论文笔记】【强化微调】AgentThink:思维链推理 + 工具调用
  • 高度雾实时渲染~轻松营造GIS场景真实感
  • 2025虚幻引擎文件与文件夹命名规律
  • ssh 服务和 rsync 数据同步
  • MFC中使用CRichEditCtrl控件让文本框中的内容部分加粗
  • 面试第三期
  • C#语言入门-task2 :C# 语言的基本语法结构
  • C#实现语音预处理:降噪/静音检测/自动增益
  • 河马剧场多部自制剧霸榜,短剧精品化战略持续推进
  • 二十章:ps结合插件stable diffusion
  • 【LLM学习笔记3】搭建基于chatgpt的问答系统(下)
  • CFG的前世今生
  • 1g做网站空间/三只松鼠搜索引擎营销案例
  • 如何法院网站建设/百度推广登陆
  • 优秀中文企业网站欣赏/app推广渠道
  • 郑州专业的网站建设公司排名/百度指数搜索热度排行
  • 建网站怎么做/百度品牌广告多少钱一个月
  • 有没有网址发一下/seo策略